@gogolang

Страница 1527 из 1630
Илья
10.10.2018
13:22:12
Спасибо ?
презеташку потом пошарите?

Daniel
10.10.2018
13:22:21
почистил офтоп, все в спецчат с этим

Илья
10.10.2018
13:22:32
а то заранее не просил покупать себе билетик, а хайлоад все еще не стоит личных денег

Daniel
10.10.2018
13:22:49
презеташку потом пошарите?
бунин всегда обеспечивает запись, и выкладывает последние годы ее в ютуб

Google
Илья
10.10.2018
13:23:03
ну, спустя полгода где-то

*казалось мне

?
10.10.2018
13:23:31
Илья
10.10.2018
13:23:38
они же до сих пор двд продают с записями прошлых лет?

Daniel
10.10.2018
13:25:10
тоже дело

Olzhas
10.10.2018
13:40:49
https://github.com/mit-pdos/biscuit/

Daniel
10.10.2018
13:47:23
не поменялось ничего

Marlik
10.10.2018
13:54:42
for { ... } остальное systemd. Больше вариантов нет?

Marlik
10.10.2018
13:57:20
Нет и не надо
Почему? Мне вот нужно что-бы приложение всё время работало с засыпаниями, как быть?

Google
Marlik
10.10.2018
13:58:03
sleep

Vadim
10.10.2018
13:59:11
sleep
Я бы через cron делал

Volodymyr
10.10.2018
13:59:42
а если демонизировать не через го?

Marlik
10.10.2018
14:00:12
Я бы через cron делал
Ну, дело в том что засыпания на рандомное количество секунд.

Alex Milushev
10.10.2018
14:03:46
Daniel
10.10.2018
14:04:02
нет же больше апстарта

Alex Milushev
10.10.2018
14:04:19
та хоть daemontools, runc

нет же больше апстарта
вдруг у него centos 6

Jack
10.10.2018
14:05:10
Привет. Установил go через пакман. go build/run/get просто виснет намертво

Daniel
10.10.2018
14:05:19
та хоть daemontools, runc
я еще пяток могу вспомнить. но актуальны systemd и docker

Jack
10.10.2018
14:05:19
может комп перезапустить?))

Volodymyr
10.10.2018
14:05:31
я просто предложил демонизировать не через го, чтобы не было проблем с main.

Jack
10.10.2018
14:05:39
go version go1.11.1 linux/amd64

заработало 0_о

сори

само

Marlik
10.10.2018
14:06:40
так и в чем проблема-то?
Проблемы нет, в декабре будет год как работает такая конструкция: for { // парсим один сайт // парсим другой сайт ... sleep( тут рандом ) } Если есть более качественное решение, то готов пересмотреть.

Google
Marlik
10.10.2018
14:12:03
Ну да.

Как в анекдоте, про папу программиста.

Foxcool
10.10.2018
14:15:12
кстати, а как нынче правильно устраивать периодические выполнения каких-то вещей?

в контектсе не по-старинке на голом железе с кроном, а вот сервисы живут докеризированные где-то

Daniel
10.10.2018
14:17:21
мы запускаем сервис, который то спит то работает

Foxcool
10.10.2018
14:18:45
т.е. использование sleep() не зашквар таки?

Евгений
10.10.2018
14:20:04
У меня сделано так: список задач -> редис-очередь => парсеры-воркеры N штук (могут размещаться на разных узлах - если нужно я добавляю контейнеров и все бежит быстрее). Воркер - горутина - поллит очередь, если что-то пришло - выполняется. Как выполнится, еще раз поллит. Если ничего не пришло, то спит сколько-то секунд.

Daniel
10.10.2018
14:20:05
sleep или timer

Dk
10.10.2018
14:20:08
мы запускаем сервис, который то спит то работает
Вдруг он ежедневно парсит бд конкурентов

Евгений
10.10.2018
14:21:31
У меня нет sleep - у меня чтение из 3 каналов: - опрос редиса - тикер - канал с сигналом на выход всех воркеров

Subbotin
10.10.2018
14:22:28
т.е. использование sleep() не зашквар таки?
наверное это зависит от того как ты арендуешь ресурсы. если он с этим слипом будет спать на дорогой виртуалке 23 из 24 часов в сутки...

Foxcool
10.10.2018
14:25:47
я как-то игрался с кодингом торгового недобота. И у меня был тупой бесконечный цикл вида for { дернутьКотировкиОбработать() sleep() } и возник вопрос, а есть ли способы правильнее. Ну понятно, что если бы таких очередей было бы совсем много, то воркеры бы висели на каналах, а отдельная гороутина бы писала в канал в котировки, но тоже засыпала

хотя, в торгах обычно решается юзанием WS и получением сообщений о новых котировках от сервера, если уже углубляться серьезно и если предоставляет биржа такую фичу

Александр
10.10.2018
14:32:01
лучше конечно канал с событиями

и отдельный воркер под него

а уже воркера ты можешь дергать как угодно

Marlik
10.10.2018
14:32:55
А как правильнее zap юзать, создать в main() и передавать в хэндлеры?

Google
Александр
10.10.2018
14:35:44
а то потом захочешь поменят и отгребешь

Marlik
10.10.2018
14:36:35
Понял, спасибо.

Daniel
10.10.2018
15:13:53
А как правильнее zap юзать, создать в main() и передавать в хэндлеры?
настроить в main, а потом получать в хендлерах через zap.L()

Александр
10.10.2018
15:14:56
настроить в main, а потом получать в хендлерах через zap.L()
я бы замутил через интерфейс логирования, иначе будет как у меня когда поменяли систему логирования под новые требования...

Foxcool
10.10.2018
15:15:31
(:

Александр
10.10.2018
15:15:31
еще и требования аля "при возникновения события логирования X реакция Y"

Daniel
10.10.2018
15:15:53
на это в zap есть свои средства

в чистом виде хуки есть в logrus, но logrus не пишет файл:строку в логи, так что я его бойкотирую

Александр
10.10.2018
15:16:51
нет такой библиотеки которую нельзя сломать странными требованиями ?

Admin
ERROR: S client not available

Александр
10.10.2018
15:17:01
я уже параною на всякий случай

Foxcool
10.10.2018
15:17:47
ну при тех странных требованиях я прост сходил и объяснил, что конкретное странное требование не нужно. Требование ликвидировалось, все довольны (:

а zap интересный. МОжет на каком следующем сервисе попробую его. Если не будет гореть

Eugenii
10.10.2018
15:21:04
настроить в main, а потом получать в хендлерах через zap.L()
а я что то этот вариант не нашел в апи, киньте где глянуть

Александр
10.10.2018
15:21:08
кстати в чистой архитектуре, которая на хабре цикл советовали даже http обернуть

ну на всякий случай

Foxcool
10.10.2018
15:22:00
у тебя главное оборачивание произошло в момент, когда решили что-то делать отдельным сервисом.

Foxcool
10.10.2018
15:22:10
Многие загоны актуальны, когда надо поддерживаь границы в монолите

чтобы петухи не напилили множественного наследования по всему проекту размазанного

Google
Eugenii
10.10.2018
15:23:23
https://godoc.org/go.uber.org/zap#L
данке шон. слона то я и не заметил

Daniel
10.10.2018
15:23:55
https://godoc.org/go.uber.org/zap#L
ну и в main что-то такое func prepareLogger(level string) { loggerConfig := zap.NewProductionConfig() err := loggerConfig.Level.UnmarshalText([]byte(level)) if err != nil { panic(err) } logger, err := loggerConfig.Build() if err != nil { panic(err) } zap.ReplaceGlobals(logger) }

Eugenii
10.10.2018
15:32:00
я так понял, что разные уровни логов в разные файлы писать, можно только разными инстанцами а так как это требование, то может по этому отсеклось

Daniel
10.10.2018
15:34:39
в реальности 12 факторов таки рулят

а там прямо сказано - писать логи в файлы должен супервизор

Foxcool
10.10.2018
15:40:32
я так понимаю, есть еще какие-то централизованные сборщики логов. Типа выводишь логи в JSON. А он их берет из контенера и все это можно посмотреть потом на сервисе логагрегатора

с каикм-то анализом по полям и т.п.

Eugenii
10.10.2018
15:44:21
особенность культурного наследия нации

Дмитрий
10.10.2018
15:50:56
Всем добрый вечер, подскажите плиз. Есть []struct{a string b int} нужно добавить в структуру данные через append не получается... как можно реализовать добавление данных?

Aleksandr
10.10.2018
15:51:29
как пробуешь?

какая ошибка?

Foxcool
10.10.2018
15:53:12
ну в структуру данные и не аппендят

Aleksandr
10.10.2018
15:53:28
у него слайс

Foxcool
10.10.2018
15:53:28
а записыват в поля конкретные

аа

тьфу

тога да, увидеть, что аппендит

Дмитрий
10.10.2018
15:54:25
https://play.golang.org/p/-gayCAtJn62

Aleksandr
10.10.2018
15:55:07
так у тебя слайс структур

Foxcool
10.10.2018
15:55:22
эм

Страница 1527 из 1630