Aleksandr
подробности щас поищу
Daniel
вот я под маком своим компиляю, и оно норм запускается, хоть под убунтой, хоть под алпайном
Aleksandr
https://dominik.honnef.co/posts/2015/06/statically_compiled_go_programs__always__even_with_cgo__using_musl/
Nikita
на альпине мюсль вместо glibc, откуда постоянно проблемы вылазят
invariance
О, всем спасибо
invariance
починил
Aleksandr
угу. на alpine надо комплить тогда, когда и запускать там же будешь
invariance
скомпилил с муслом
Igor
народ, подскажите, Как сделать sql запрос правильно на truncate table, если в функции название таблицы меняется? queryString := "TRUNCATE TABLE $1 RESTART IDENTITY;" tx.Exec(queryString, table) Выдаёт pq: syntax error at or near "$1" то есть он видимо понимает подстановку только из VALUES($1,$1...)
Aleksandr
просто сконкатенируй
Aleksandr
у тебя же table не извне приходит?
Igor
table приходит в функцию, которая транкейтит. Сконкатенировать - работает. Я думал может можно через подстановку параметров как-то
Aleksandr
ну так ты же их и подставляешь, но не работает)
Igor
я думал, "есть способ"
DMITRY
Недавно тоже столкнулся что в альпайне С библиотеки порезаны
DMITRY
Причем даже если под ним скоипилиться не факт потом что норм запуститься
Anton
Потому что в плейграунде по умолчанию время в utc
Вернулся к компу, проверил там по-умолчанию что в плейграунде, что нет, будет Local, если явно не указывать таймзону
Andrei 🦉
Вернулся к компу, проверил там по-умолчанию что в плейграунде, что нет, будет Local, если явно не указывать таймзону
и правда нет простого пути вытащить из стандартной либы оригинальные названия тайм зон
Anton
именно поэтому я написал сюда свой вопрос и именно поэтому заострил внимание на ваших язвительных замечаниях о простоте решения этого вопроса через гугление
Andrei 🦉
именно поэтому я написал сюда свой вопрос и именно поэтому заострил внимание на ваших язвительных замечаниях о простоте решения этого вопроса через гугление
ну сторонних либ, которые решают этот вопрос я тоже не нашел, так что хотелка очень экзотическая чем не подходят сокращения названий тайм зон, которые выдает стандартная либа?
Anton
мне нужно указать параметр loc при коннекте к mysql, чтобы он парсил время в структуры в правильной таймзоне а этот параметр должен выглядить именно как полное название таймзоны
Andrei 🦉
мне нужно указать параметр loc при коннекте к mysql, чтобы он парсил время в структуры в правильной таймзоне а этот параметр должен выглядить именно как полное название таймзоны
передавайте извне параметром, а еще лучше, кидайте в мускуль UTC и все даты в коде тоже принудительно переводите в UTC ну по крайней мере я бы так сделал и не парился бы
Anton
это понятное решение, но если случайно в каком-то месте забыть к time.Now() добавить .UTC(), потом долго можно искать ошибку
Andrei 🦉
ну или напишите свою либу, которая будет парсить системный файл с таймзонами и на его основе определять имя локальной
Andrei 🦉
код парсинга можно взять из стандартной либы time, там уже все написано, только не экспортированно
Aleksandr
а что надо, из текущей таймзоны получить название вида Europe/Moscow?
Aleksandr
а есть понимание, что Europe/Moscow - это географическая временная зона и при том же локальном времени будет другой в другом городе?
Aleksandr
то есть из локальной зоны (а это оффсет) нельзя получить Europe/Moscow без дополнительного гео-контекста
Aleksandr
можно получить например все зоны которые принадлежат оффсету. и выбрать например первую
Andrei 🦉
и знает в какой он находится из системных настроек
Aleksandr
оффсет. но оффсет однозначно на зону не маппится
Aleksandr
из зоны можно получить оффсет. из оффсета нельзя получить зону.
Andrei 🦉
ну так у тебя в системе настраивается зона, а не просто оффсет
Andrei 🦉
и го знает эту зону, но полное название в терминах https://www.iana.org/time-zones не умеет отдавать
Aleksandr
ну так у тебя в системе настраивается зона, а не просто оффсет
у меня может. а го твоя зона не нужна - он работает с системным временем
Andrei 🦉
у меня может. а го твоя зона не нужна - он работает с системным временем
zonename, offset := time.Now().Zone() fmt.Printf("%s, %d", zonename, offset) возвращает MSK, 10800 на моей машине
Andrei 🦉
откуда то го узнал, какая у меня таймзона
Aleksandr
или не нулевая а последняя
Aleksandr
time/zoneinfo_read.go:217
Aleksandr
вот тут (если версия 1.11)
Alexander
Всем привет! Есть ли тут разработчики с опытом в рекламных высоконагруженных проектах?
Roman
https://cs8.pikabu.ru/post_img/2016/12/07/6/148110077516849805.jpg
предлагаешь решить её на Go?
Dmitry
предлагаешь решить её на Go?
отличная задача для соискателей)
Andrei 🦉
или не нулевая а последняя
для первоначального вопроса не важно на самом деле, главное го умеет как то определять текущую таймзону, но отдает ее название в своем сокращенном варианте, а оригинальные полные названия получить нельзя
🏁Александр
эй
🏁Александр
а что с pro.go то?
Alexander
да, в сфере баннеров Таргет отдачи рекламы по странам, девайсам с минимальными задержками Статистика на ClickHouse с шардированием и прочее
Anonymous
а что с pro.go то?
Сливаем в один потому, что хозяин потерялся
Aleksandr
а что с pro.go то?
у тебя со вчерашнего дня затмение?
KUKURUKU
Народ, может кто объяснить почему по ссылке в ответе чувак говорит, что int64 это именованный тип? int это же литерал типа? https://stackoverflow.com/questions/36555352/why-does-golang-allow-named-slice-type-assignment-without-explicit-type-conversi
Andrei 🦉
согласен. вот можно готовым маппингом воспользоваться https://github.com/tkuchiki/go-timezone/blob/master/timezone.go
статикой пользоватся не прикольно, оно же быстро протухнет в стандартной либе маппинг генерится на основе системного файла, вот этот бы код переиспользовать
Aleksandr
time/zoneinfo_read.go
Aleksandr
успехов, как говорится)
Andrei 🦉
успехов, как говорится)
в данном случае, не мне)
Aleksandr
всем)
Wingman
А посоветуйте плз. Есть у меня штука, вынесенная в отдельный сервис: она будет ходить по различному оборудованию и собирать с него кучу самых разнообразных данных. В результате - структурированные однообразные ответы, либо ошибка. В неё пулять задание (объекты для обхода) будет какая-то другая штука. Так вот, думаю я о том, как и что лучше сделать: делать http(s)-запрос с нужными параметрами, и ждать ответ, либо поднимать tcp-сессию и гонять туда-обратно нужные данные. Учитывая, что опрос одной железки может и на 5-10 минут затянуться, а таких задания может быть несколько тысяч в течение 5 минут - оверхед (в смысле сложности) с сокетами и своим мини-протоколом может быть оправдан...
DMITRY
если веб то может проще websocket
Wingman
Не веб
Anonymous
А посоветуйте плз. Есть у меня штука, вынесенная в отдельный сервис: она будет ходить по различному оборудованию и собирать с него кучу самых разнообразных данных. В результате - структурированные однообразные ответы, либо ошибка. В неё пулять задание (объекты для обхода) будет какая-то другая штука. Так вот, думаю я о том, как и что лучше сделать: делать http(s)-запрос с нужными параметрами, и ждать ответ, либо поднимать tcp-сессию и гонять туда-обратно нужные данные. Учитывая, что опрос одной железки может и на 5-10 минут затянуться, а таких задания может быть несколько тысяч в течение 5 минут - оверхед (в смысле сложности) с сокетами и своим мини-протоколом может быть оправдан...
Сделайте асинхронную очередь. На сервисе который выдаёт задачи - отправить задачу и периодически пинговать статус. На сервисе который выполняет - принять и поставить в очередь на обход, сохранить статус у себя
Wingman
Примерно так и хочу, но вопрос в том, стоит ли это делать поверх хттп)
Anonymous
Wingman
если с постоянной сесией - то и "пинговать задачу" не надо - просто пулять результаты обратно
Wingman
Какое количество запросов между сервисами?
думаю, до нескольких тысяч в минуту
Anonymous
думаю, до нескольких тысяч в минуту
Тогда лучше вебсокеты, чтобы коннект заново не поднимать
DMITRY
Проще взять тогда готовые брокеры сообщений и подрубиться библиотекой
Wingman
спасибо
Roman
а кто основатель канала тут?