Kirill
Грац
Спасибо 🙂
🎉
Четыре с половиной тысячи запросов в секунду, это нормально?
Илья
Спасибо 🙂
презеташку потом пошарите?
Daniel
почистил офтоп, все в спецчат с этим
Илья
а то заранее не просил покупать себе билетик, а хайлоад все еще не стоит личных денег
Daniel
презеташку потом пошарите?
бунин всегда обеспечивает запись, и выкладывает последние годы ее в ютуб
Илья
ну, спустя полгода где-то
Илья
*казалось мне
Co(n)stantine👨‍🔬
Илья
они же до сих пор двд продают с записями прошлых лет?
Daniel
тоже дело
Olzhas
https://github.com/mit-pdos/biscuit/
Olzhas
Daniel
не поменялось ничего
🎉
for { ... } остальное systemd. Больше вариантов нет?
🎉
Нет и не надо
Почему? Мне вот нужно что-бы приложение всё время работало с засыпаниями, как быть?
🎉
sleep
Vadim
sleep
Я бы через cron делал
Vovan
а если демонизировать не через го?
🎉
Я бы через cron делал
Ну, дело в том что засыпания на рандомное количество секунд.
Daniel
нет же больше апстарта
Lex
та хоть daemontools, runc
Lex
нет же больше апстарта
вдруг у него centos 6
Brommie
Привет. Установил go через пакман. go build/run/get просто виснет намертво
Daniel
та хоть daemontools, runc
я еще пяток могу вспомнить. но актуальны systemd и docker
Brommie
может комп перезапустить?))
Vovan
я просто предложил демонизировать не через го, чтобы не было проблем с main.
Brommie
go version go1.11.1 linux/amd64
Brommie
заработало 0_о
Brommie
сори
Brommie
само
🎉
так и в чем проблема-то?
Проблемы нет, в декабре будет год как работает такая конструкция: for { // парсим один сайт // парсим другой сайт ... sleep( тут рандом ) } Если есть более качественное решение, то готов пересмотреть.
🎉
Ну да.
🎉
Как в анекдоте, про папу программиста.
Foxcool
кстати, а как нынче правильно устраивать периодические выполнения каких-то вещей?
Foxcool
в контектсе не по-старинке на голом железе с кроном, а вот сервисы живут докеризированные где-то
Daniel
мы запускаем сервис, который то спит то работает
Foxcool
т.е. использование sleep() не зашквар таки?
Евгений
У меня сделано так: список задач -> редис-очередь => парсеры-воркеры N штук (могут размещаться на разных узлах - если нужно я добавляю контейнеров и все бежит быстрее). Воркер - горутина - поллит очередь, если что-то пришло - выполняется. Как выполнится, еще раз поллит. Если ничего не пришло, то спит сколько-то секунд.
Daniel
sleep или timer
Dk
мы запускаем сервис, который то спит то работает
Вдруг он ежедневно парсит бд конкурентов
Евгений
У меня нет sleep - у меня чтение из 3 каналов: - опрос редиса - тикер - канал с сигналом на выход всех воркеров
Subbotin
т.е. использование sleep() не зашквар таки?
наверное это зависит от того как ты арендуешь ресурсы. если он с этим слипом будет спать на дорогой виртуалке 23 из 24 часов в сутки...
Foxcool
я как-то игрался с кодингом торгового недобота. И у меня был тупой бесконечный цикл вида for { дернутьКотировкиОбработать() sleep() } и возник вопрос, а есть ли способы правильнее. Ну понятно, что если бы таких очередей было бы совсем много, то воркеры бы висели на каналах, а отдельная гороутина бы писала в канал в котировки, но тоже засыпала
Foxcool
хотя, в торгах обычно решается юзанием WS и получением сообщений о новых котировках от сервера, если уже углубляться серьезно и если предоставляет биржа такую фичу
🏁Александр
лучше конечно канал с событиями
🏁Александр
и отдельный воркер под него
🏁Александр
а уже воркера ты можешь дергать как угодно
🎉
А как правильнее zap юзать, создать в main() и передавать в хэндлеры?
🏁Александр
а то потом захочешь поменят и отгребешь
🎉
Понял, спасибо.
Daniel
А как правильнее zap юзать, создать в main() и передавать в хэндлеры?
настроить в main, а потом получать в хендлерах через zap.L()
🏁Александр
настроить в main, а потом получать в хендлерах через zap.L()
я бы замутил через интерфейс логирования, иначе будет как у меня когда поменяли систему логирования под новые требования...
Foxcool
(:
🏁Александр
еще и требования аля "при возникновения события логирования X реакция Y"
Daniel
на это в zap есть свои средства
Daniel
в чистом виде хуки есть в logrus, но logrus не пишет файл:строку в логи, так что я его бойкотирую
🏁Александр
нет такой библиотеки которую нельзя сломать странными требованиями 🙂
🏁Александр
я уже параною на всякий случай
Foxcool
ну при тех странных требованиях я прост сходил и объяснил, что конкретное странное требование не нужно. Требование ликвидировалось, все довольны (:
Foxcool
а zap интересный. МОжет на каком следующем сервисе попробую его. Если не будет гореть
Eugenii
настроить в main, а потом получать в хендлерах через zap.L()
а я что то этот вариант не нашел в апи, киньте где глянуть
🏁Александр
кстати в чистой архитектуре, которая на хабре цикл советовали даже http обернуть
🏁Александр
ну на всякий случай
Foxcool
у тебя главное оборачивание произошло в момент, когда решили что-то делать отдельным сервисом.
Foxcool
Многие загоны актуальны, когда надо поддерживаь границы в монолите
Foxcool
чтобы петухи не напилили множественного наследования по всему проекту размазанного
Eugenii
https://godoc.org/go.uber.org/zap#L
данке шон. слона то я и не заметил