
Roman
23.06.2016
11:37:09
а зачем нужен торнадо?

Serge
23.06.2016
11:37:55
ну, когда-то давно было модно на нем делать всякое с вебсокетами, типа event driving

Andrey
23.06.2016
11:45:23
а сейчас на чем модно?

Roman
23.06.2016
11:48:29

Google

Andrey
23.06.2016
11:48:58
а если питон 2? =)

Aleksandr
23.06.2016
11:50:14
http://img.walls321.com/images1/huonwfmxdrv.jpg

Danil
23.06.2016
11:53:59

VsegdaZhivoi
23.06.2016
11:54:30
?

Andrey
23.06.2016
11:54:32
ну а вдруг

Roman
23.06.2016
11:55:27
ну или trollius

Vitali K.
23.06.2016
11:57:10
@lig11 о дебаге. Можно зайти на сервера и посмотреть на каком есть Джанго воркер. 100% cpu
Чёто я наверное вне контекста что-то сказал чувствую )))

Serge
23.06.2016
12:10:28
и тут ошибка пропала...;)
вернул как было на gevent и все равно ошибки нет, мистика

Google

Dmitry
23.06.2016
12:14:28
ээ запрос.. в джанго.. https://github.com/django-debug-toolbar/django-debug-toolbar ?
или pdb в каком-нибудь виде, да.

Serge
23.06.2016
12:16:37
да, втыкал pdb, но ошибка прошла;)

Roman
23.06.2016
12:17:08
я всякие бэкдоры использую для дебага

Serge
23.06.2016
12:17:44
а у gevent вроде был бэкдорчик какой-то...

Roman
23.06.2016
12:20:00
ага.
вот у меня был факап, когда я ждал POLLIN из сокета, где удалённая сторона уже закрыла.

Serge
23.06.2016
12:34:58
а вот скажите мне, а может установка в venv проекта pdb вылечить некий неуловимый лок в gevent?
ну просто проблемы нет, все хорошо стало на проде, я только pdb поставил

Andrey
23.06.2016
13:36:50
ну удали его и посмотри

Serge
23.06.2016
14:19:17
:)

Dmitry
23.06.2016
14:20:11
но лучше не удаляй пока сразу. пусть повисит, поймёшь, реально ли проблема ушла. А потом да, удали и снова проверь

Serge
23.06.2016
14:20:39
ну, по ходу не ушла, но там непонятно

Dmitry
23.06.2016
14:20:45
?

Serge
23.06.2016
14:20:58
тут еще мне коллеги подсказали что можно в логах посмотреть
ну, проблема вернулась, но теперь уже не понятно на всех серверах или только не на тех где pdb:) в общем странно все это
а вот коллеги, есть вопрос про celery
допустм у меня бежит долгая таска и я бы хотел в определенные моменты дать побегать параллельным таскам в том же воркере, чтобы очередь не застаивалась. как бы так сделать?

Vitali K.
23.06.2016
18:52:37
Может лучше иметь пару очередей с разными приоритетами?
Интересно сравнить селери и RQ. В RQ воркер - это два процесса: 1) родительский 2) рабочая лошадка - форк от родительского на каждую таску. В селери так же?

Google

Serge
23.06.2016
19:03:20
в селери много как, но в основном, насколько я понимаю, пул различных тредов, в заивисмости от выбранного бэкенда, которому основной процесс воркера напихивает задачи
воркеров сколько хочешь
и beat, он же cron, который порождает задачи по расписанию или через интервал
воркеры забирают задачи из брокера сами
так, sleep не помог

Vitali K.
23.06.2016
19:06:01
Ну тогда надо больше воркеров)

Serge
23.06.2016
19:06:06
это ж еще и воркера под нее надо... а это минимум две тачки в aws еще

Vitali K.
23.06.2016
19:06:29
Пока одна редка таска работает второй воркер будет мелки делать

Serge
23.06.2016
19:06:41
воркеров тоже до фига, но мне жалко целый воркер ради этой задачи тормозить
ну вот смотри, в воркере gevent и concurrency 200
и все 200 потоков ждут одну эту гадину

Serge
23.06.2016
19:07:40
ладно 40, не 200;) 200 у uwsgi :)

Vitali K.
23.06.2016
19:08:24
А. Т.е твой воркер расчитан на io задачи, не на cpu bound?

Serge
23.06.2016
19:08:52
ну типа

Vitali K.
23.06.2016
19:09:55
Может её куда-то в бэкграунд на расчёт поставить .. Не знаю какими средствами )

Serge
23.06.2016
19:10:06
и вот у меня там в задаче три вложенных цикла, причем внутренний по результатам запроса в базку
и я бы с удовольствием иногда давал другим задачам поработать

Vitali K.
23.06.2016
19:17:25
gevent.sleep(0) ?
нагуглил что свитчит контексты. мб поможет если втавить вглубь цикла в итеарацию?

Google

Serge
23.06.2016
19:18:39
ну в тредах sleep не помог

Vitali K.
23.06.2016
19:23:35
именнто gevent.sleep, не time.sleep. да?)

Serge
23.06.2016
19:27:37
gevent патчит sleep на свой
но я запускал локально в тредах
так вот запустил в gevent
помогло
прикольно
только я теперь его по ctrl+C остановить не могу:)
worker: Cold shutdown (MainProcess)
^C
worker: Cold shutdown (MainProcess)
^C^C^C^C^C^C^C^C
worker: Cold shutdown (MainProcess)
^C
worker: Cold shutdown (MainProcess)
^C
worker: Cold shutdown (MainProcess)
^C
worker: Cold shutdown (MainProcess)
^C
worker: Cold shutdown (MainProcess)
^C
worker: Cold shutdown (MainProcess)

Vitali K.
23.06.2016
19:45:35
бгг

Admin
ERROR: S client not available

Vitali K.
23.06.2016
19:45:42
на SIGINT кто-то подписался?

Serge
23.06.2016
19:45:57
там был flower
но я его выключил уже
так в смысле? оно и подписалось
и оно его получает, и пытается сделать Cold shutdown:)
но не может
sigkill помог:)
всё, можно садится Flash-а досматривать:)
я тут, кстати, Sentry на стероиды посадил;)

Google

Serge
23.06.2016
19:50:05
на ITGM расскажу, наверное

Vitali K.
23.06.2016
19:50:12
это ты им 8M фандинга дал?)

Dmitry
23.06.2016
19:50:18
сентри тут же недавно получили кучу бабла
ага

Serge
23.06.2016
19:50:24
да ты чо?
может сделают нормальное что-то
идея отправлять логи в одно место, где слушает джанга, потом класть в редис, а потом обрабатывать в селери и складывать в постгрес - это полный ппц
я сделал из него сборщик в обратную сторону, который ходит за логами, а на ждет когда пришлют
а хосты пишут в файлики
ну я рассказывал
а теперь вот разделил еще морду и вокеров по двум автоскалинг группам в AWS
оно на одном хосте отстало на два дня!! с обработкой
пришла ASG выросла до 6 хостов и пережевала два дня отставания за 40 минут:)
ну и сспокойно уменьшилась до 2 хостов с нагрузкой в 20%
ляпота

Dmitry
23.06.2016
19:55:10
кул

Serge
23.06.2016
19:55:16
надо будет aws-ный докер хостинг попробовать. если там все также мимишно, как в большом EC2 - это просто няшка будет
кул, да, 7 ASG уже в проекте, такой зоопарк...
Language files blank comment code
YAML 188 72 35 2320

Vitali K.
23.06.2016
20:02:44
кинь сюда зазипованые исходники плиз

Serge
23.06.2016
20:03:27

Vitali K.
23.06.2016
20:03:38
?

Serge
23.06.2016
20:06:52
ну и наш маленький проектик
Language files blank comment code
Python 1019 11058 2460 51039