@gogolang

Страница 1450 из 1630
Alexander
25.09.2018
06:09:40
есть задачи, они обрабатывают данные, и информируют о своем выполнении хаб, в хабе висят клиенты

ужос кокой. в хабе висят клиенты... :)

Google
The
25.09.2018
06:11:13
ок, представь себе два юзера открыли мой сайт, и у них есть внизу прилипший блок отображающий полоску, которая заполняется - это прогресс задач. данные о выполнении задач они получают по WebSocket.

Таймаут к таскам пришурупить можно?
таймаут чего именно? опрашивать задачу не сдохла ли она, и если сдохла - то отправить что "она всё"?

Alexander
25.09.2018
06:11:53
ну, и что?

ты не пробовал в комнате web-мастеров спросить?

The
25.09.2018
06:13:18
ну, и что?
есть два подхода о которых я знаю: опрашиваем раннеры, либо раннеры оповещают сами о прогрессе.

Alexander
25.09.2018
06:13:23
ну, попробуй, запости такую простыню ребятам из PHP :)

The
25.09.2018
06:13:25
я описал с какими трудностями столкнулся.

окей, необязательно отвечать если сказать нечего

b0000000000000t
25.09.2018
06:15:58
таймаут чего именно? опрашивать задачу не сдохла ли она, и если сдохла - то отправить что "она всё"?
Пусть воркер при завершении (он ж не может с паникой вывалиться) закрывает канал. Хаб слушает селектом канал воркера и канал time.After, в зависимости че первее наступит то и делает.

Alexander
25.09.2018
06:16:10
Блин, но финальный вопрос - прекрасен: как это лучше реализовать, кто-то знает?

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

Alexander
25.09.2018
06:23:27
Вадим, не пиши так долго! Пиши проще!

Google
Alexander
25.09.2018
06:23:47
я прочитал весь текст, не слишком много там понял, но финальный вопрос меня просто добил :)
Мне кажется вам стоит завести блог. Или твиттор. Или инстаграмм. Обычно туда пишут свои мысли, которые никому другому не интересны. От вас очень много бессмысленно флуда. Человек задал вопрос, на который ответить вы не можете (не хотите) и вы нафлудили десяток бессмысленных, не несущих нагрузки сообщений. Если не сложно, то хотя бы схлопывайте ваши мысли в одно сообщение

b0000000000000t
25.09.2018
06:24:25
Вадим, не пиши так долго! Пиши проще!
Не жди так долго сообщения. Будь проще. И да, можно схлопывать флуд в /dev/null

The
25.09.2018
06:25:27
Пусть воркер при завершении (он ж не может с паникой вывалиться) закрывает канал. Хаб слушает селектом канал воркера и канал time.After, в зависимости че первее наступит то и делает.
Окай, спасибо. Надо сам хаб перепилить, и как-то регистрировать воркеры в нем. И на каждого воркера использовать горутину наблюдающий за прогрессом, либо если задача не отвечает - сообщать что закончилось. Там ещё есть проблема с тем, что сами задачи запускаются и из CLI по крону отдельным приложением, т.е. задачи должны сами уведомить хаб о своем появлении. Короче спроектировать это надо как-то толково. Куча нюансов. Ладно спасибо, пойду обмозгую.

Yo
25.09.2018
06:25:46
@golanglibrary
спасибо, подписался

Alexander
25.09.2018
06:28:04
ребятки, как реализовать такой паттерн, есть задачи, они обрабатывают данные, и информируют о своем выполнении хаб, в хабе висят клиенты по WebSocket и им рассылаются сообщения о прогрессе задач. сначала сделал по тикеру, хаб опрашивает этот пулл задач раз в 500мс., собирает данные - и шлет на клиент. но если задач нет (а их чаще нет, чем они есть), то происходит бессмысленная работа. решил сделать так, что задачи сами оповещают хаб клиентов о своем прогрессе по каналу, но другой вопрос, если задача "упала", а такое вполне возможно, то последнее сообщение улетевшее на клиент будет о том, что задача жива, и получается что клиент никак не узнает о завершении задачи. как это лучше реализовать, кто-то знает?
Или попробуйте опрашивать о статусе через Лонг-поллинг, возможно снизится нагрузка. Если хотите решить задачу вторым способом - пускайте херт-бит сигналы которые пингуют задачу. И настройте полиси - не ответил на три-пять херт-битов подряд - задача считается мертвой

The
25.09.2018
06:28:32
Я думал может какой-то паттерн есть под это дело, ведь проблема уже наверняка решена и объезжана, и вопросы разделения обязанностей и ответственности уже тоже известны.

Alexander
25.09.2018
06:29:00
это вы о Go тут флудите такими интересными мыслями?

Alexander
25.09.2018
06:30:20
Я думал может какой-то паттерн есть под это дело, ведь проблема уже наверняка решена и объезжана, и вопросы разделения обязанностей и ответственности уже тоже известны.
Ну в целом практика пускать херт-биты это как раз стандартный паттерн. В куче распределенных систем используется для понимания живая нода или нет.

The
25.09.2018
06:31:06
Из кли не обязательно запускать прям полноценное приложение. Можете при запуске из кли, искать текущий запущенный демон (пайп например в фс искатт по фиксированному пути) и в него пихать таск
Оно так и работает, висит один жирный процесс, а CLI бинарник это просто обёртка которая говорит жирному объекту чтоб тот взял задачу в работу.

The
25.09.2018
06:32:03
Может тогда и делать ничего не надо? :)
Надо, хочу разобраться с этим вопросом т.к. предстоит поработать с такой штукой.

Получать подтверждение о получении сообщения.
Это для чего? У нас же раннеры оповещают хаб.

Zver
25.09.2018
06:36:18
The
25.09.2018
06:36:41
буду думать как сделать именно сам раннер который не будет падать или зависать. ладно спасибо всем. пойду порисую схемки, обмозгую.

Alexander
25.09.2018
06:37:56
Это все о Go было?

Zver
25.09.2018
06:39:23
Это для чего? У нас же раннеры оповещают хаб.
Ну тогда, как описал Александр.

Google
Alexander
25.09.2018
06:40:21
Как исправить свою вину?

Ну, расскажите, пожалуйста! Не надо так высокомерно молчать, Александр!

тут почти две тысячи "участникиков". И почти все молчат. А вы, Александр, упрекаете меня в том, что я тут что-то говорю... Ай-ай

Yo
25.09.2018
06:59:04
тут почти две тысячи "участникиков". И почти все молчат. А вы, Александр, упрекаете меня в том, что я тут что-то говорю... Ай-ай
не красиво говорить "про себя", при этом одергивать про упоминания возможностей или фич "раст-а", потому что тема про Го. Пора быть скромнее. Чем меньше тут сообщений за день - тем лучше, потому что информативнее.

Alexander
25.09.2018
07:00:10
да говорить вобще некрасиво, судя по всему.

Yo
25.09.2018
07:01:53
Это не так
что именно? говорить/спрашивать про себя "как исправить свою вину"..... или одергивать про фичи в раст-е? да, говорить "без дела" - ну так себе..... не красиво.

Alexander
25.09.2018
07:02:29
Даже, глядя на этих пацанов, которые тут орут вокруг: "Я спрашивал про одно, а они мне - про другое"... Эти пацаны только через несколько лет, может быть, поймут что им именно про то, что они спрашивали, и сказали... Говорить иногда вобще неприлично, в общем. :(

что именно? говорить/спрашивать про себя "как исправить свою вину"..... или одергивать про фичи в раст-е? да, говорить "без дела" - ну так себе..... не красиво.
Как ты уже подзаебал за два дня со своим Rust, прости. Ты ведь явно понимаешь, что каналом не ошибся. То есть злонамеренно флудишь :(

Viktor
25.09.2018
07:06:25
Девочки, не сорьтесь

Yo
25.09.2018
07:06:30
Как ты уже подзаебал за два дня со своим Rust, прости. Ты ведь явно понимаешь, что каналом не ошибся. То есть злонамеренно флудишь :(
Вау... переходим на личности? :0 мне написать про тебя свое отношение? :) умные люди говорят "таким пацанам", что "вопрос поставлен не корректно"... и объясняют почему.

Alexander
25.09.2018
07:06:45
Alexander
25.09.2018
07:08:20
Yo, ты же в воскересенье подписался на канал Rust, я сам это видел! Вот и давай как-то фильтровать любовь? Хорошо?

Мерлин
25.09.2018
07:08:48
Либо вы сейчас прекращаете, либо я выдаю вам ридонли на сутки

Alexander
25.09.2018
07:09:11
Я - прекращаю

Nick
25.09.2018
07:11:07
Я только попкорн взял

Alexander
25.09.2018
07:11:26
у этой схемы есть проблема, что надо или заранее знать примерное время выполнение задачи и выставлять таймаут в контексте исходя из этого. или все же периодически опрашивать статус и увеличивать таймаут, если work in progress

The
25.09.2018
07:11:33
как быть если задача выполняется от нескольких секунд до нескольких часов, там таймаут не получится сделать. с хартбитом понятно.

Google
Alexander
25.09.2018
07:12:20
? как говорил один знакомый профессор "если мысли сходятся значит они ограниченны. будем надеятся что наши ограничены только снизу"

The
25.09.2018
07:13:22
Ну вот я создаю ctx.WithTimeout, какое время указывать? Или вы не про это?

Или взять количество заданий и перемножить?)

Мерлин
25.09.2018
07:15:20
у тебя по одной горутине на задачу, которая мониторит её состояние

и если что, шлёт на вебсокет сообщения

Admin
ERROR: S client not available

Мерлин
25.09.2018
07:17:06
The
25.09.2018
07:18:10
Задача у меня это если что: - выбрать из базы 500+ URL - поднять Chrome - начать обходить страницы - обрабатываем результаты, вставляем в базу

У хрома есть ещё вкладки

Они тоже залипать могут

Там контекс закрывается если страница не ответила за 60 секунд

The
25.09.2018
07:20:23
Не)) chromedp очень глючный

Другую либу забыл название

Zver
25.09.2018
07:20:38
The
25.09.2018
07:20:45
cdp mafredi

Как то так погуглите

Google
The
25.09.2018
07:21:06
Там 130 лайков но работает как часы

С хромдп намучился я

Zver
25.09.2018
07:21:24
Не)) chromedp очень глючный
Мне он не понравился своей прямолинейностью, проблематично свою логику привинчивать.

Olzhas
25.09.2018
07:21:30
https://github.com/mafredri/cdp

The
25.09.2018
07:22:04
В chromedp нет возможности узнать когда страница загрузилась

Там с этим жопа какая-то

Zver
25.09.2018
07:22:18
cdp mafredi
Спасибо. У меня кстати сохранена ссылка на него. )

The
25.09.2018
07:22:29
Через раз страницы грузятся по 60 секунд

Zver
25.09.2018
07:22:32
The
25.09.2018
07:22:41
Cdp пушка и автор очень отзывчивый

Duamel
25.09.2018
07:23:08
Не)) chromedp очень глючный
Интересно) используем chromedp в проде и норм вроде как

Zver
25.09.2018
07:23:16
Потыкаю его значит. )

Bohdan
25.09.2018
07:27:04
плюсую, использовал malfredri для одного челленджа - было норм, лучше альтернатив

Zver
25.09.2018
07:27:07
Интересно) используем chromedp в проде и норм вроде как
У меня не отрабатывал событие одно. Элемент появляется, а он висит в ожидании его появления и в логе при этом пишет,, что найден такой элемент. Ну вот ни в какую. Либо я чего-то не понял.

Dmitri
25.09.2018
07:39:20
я про докер на винде не знаю ничего. он там в виртуалке линуксовой, как на маке?
сейчас еще вариант на windows subsystem for linux (tm) запилили... но это зло

привет! запутался с поинтерами: есть слайс []*int и в него в цикле я аппендю 2, 1, 1. Но в итоге слайс содержит 1, 1, 1. Вопрос ко всем, кроме админов : какой момент насчет поинтеров я упустил?
а ты в него как аппендишь? Мне тут знакомая коза на ухо шепнула, что готова поспорить, что внутри у тебя - массив указателей на один и тот же *int, в котором лежит ровно то, что положили последним

Dmitri
25.09.2018
07:51:41
Никак, только через вложенные запросы
можно еще промежуточную вьюху запилить

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