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