
Илья
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
они же до сих пор двд продают с записями прошлых лет?

Roman
10.10.2018
13:24:57

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

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

Alex Milushev
10.10.2018
13:46:35

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

Roman
10.10.2018
13:53:39

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

Roman
10.10.2018
13:56:27

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

Google

Roman
10.10.2018
13:57:44

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

Daniel
10.10.2018
14:02:55

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

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

Daniel
10.10.2018
14:05:19

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( тут рандом )
}
Если есть более качественное решение, то готов пересмотреть.

Евгений
10.10.2018
14:11:47

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 штук (могут размещаться на разных узлах - если нужно я добавляю контейнеров и все бежит быстрее).
Воркер - горутина - поллит очередь, если что-то пришло - выполняется. Как выполнится, еще раз поллит. Если ничего не пришло, то спит сколько-то секунд.

Andrei
10.10.2018
14:20:04

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

Marlik
10.10.2018
14:25:11

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() и передавать в хэндлеры?

Александр
10.10.2018
14:35:38

Google

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

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

Daniel
10.10.2018
15:13:53

Александр
10.10.2018
15:14:56

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

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

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

Daniel
10.10.2018
15:22:03

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

Google

Eugenii
10.10.2018
15:23:23

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 факторов таки рулят
а там прямо сказано - писать логи в файлы должен супервизор

Andrei
10.10.2018
15:35:51

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

Bohdan
10.10.2018
15:42:36

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
эм