
Nikolay
28.09.2017
14:16:33
но там, скорее всего, так же

Dmitry
28.09.2017
14:17:28
Спасибо, все за ответы!

Google

in favor
28.09.2017
14:17:46
зачем celery? это всё можно в одном потоке

Nikolay
28.09.2017
14:18:09
случаев, когда реально надо прокидывать запросы в очередь, я навскидку даже толком не знаю, ну максимум один-два экзотических

Dmitry
28.09.2017
14:19:29
да, задача такая как я ее описал, приходят запросы по http, каждый запрос помещается в очередь, которую слушают N количество процессов, и соответвенно обрабатывают эту очередь.

in favor
28.09.2017
14:20:15
почему бы не обрабатывать это одним потоком?

Dmitry
28.09.2017
14:20:48
после обработки каждый процессор кладет результат в выходную очередь, из которой один поток возращает ответ по http.

Nikolay
28.09.2017
14:21:07

Роман
28.09.2017
14:21:23
оооо,дайте советов, что почитать по архитектуре

Dmitry
28.09.2017
14:21:31

Роман
28.09.2017
14:21:42
очень надо )

Nikolay
28.09.2017
14:21:47
ну то есть как

Dmitry
28.09.2017
14:22:06

Google

Роман
28.09.2017
14:22:23

Nikolay
28.09.2017
14:22:36

Dmitry
28.09.2017
14:22:40

Nikolay
28.09.2017
14:22:56
как эти таски обрабатываются на бэкенде - дело десятое, может, и очередь с воркерами
но по окончании обработки таске выставляется статус ready, клиенты ее поллят по айдишнику и забирают результат, когда он готов

Dmitry
28.09.2017
14:23:44

Nikolay
28.09.2017
14:24:10

Dmitry
28.09.2017
14:24:16

Nikolay
28.09.2017
14:24:19
или там вебсокеты?

Dmitry
28.09.2017
14:24:33

Nikolay
28.09.2017
14:24:36

Dmitry
28.09.2017
14:24:56

Роман
28.09.2017
14:25:39
теория массового обслуживания )
как раз прям каноничная задача :D

Nikolay
28.09.2017
14:26:00
а еще такие штуки хорошо пишутся на го, если минимум бизнес-логики

Dmitry
28.09.2017
14:26:24

Nikolay
28.09.2017
14:26:25
и там вся эта катавасия с очередями и процессами вообще будет не нужна

Dmitry
28.09.2017
14:26:34

Google

Nikolay
28.09.2017
14:27:22

Dmitry
28.09.2017
14:27:28
ага

Nikolay
28.09.2017
14:27:33
уверен, что эту логику нельзя никак ускорить?

Dmitry
28.09.2017
14:27:44

Nikolay
28.09.2017
14:27:55
например, сишные либы использовать

Dmitry
28.09.2017
14:28:12
только параллелить, единственный путь

dmks
28.09.2017
14:28:16
О_О

Nikolay
28.09.2017
14:28:21
или, если там работа с базой - то максимум вещей на уровне базы делать

Dmitry
28.09.2017
14:28:26

Nikolay
28.09.2017
14:28:30

Nikolay
28.09.2017
14:28:46
надо в первую очередь пытаться оптимизировать самое узкое место

Dmitry
28.09.2017
14:29:08

Nikolay
28.09.2017
14:29:09
если логика медленно работает - надо оптимизировать ее, а не сервер
в общем, попробуй concurrent.ProcessPoolExecutor, но что-то мне подсказывает, что ничего тебе это не даст

Dmitry
28.09.2017
14:32:00

dmks
28.09.2017
14:32:18
Очень странный диалог, нахрена делать свой целери?

Google

dmks
28.09.2017
14:32:39
Ну ладно, наслаждайтесь, я просто мимокрокодил

Nikolay
28.09.2017
14:32:44
но если учесть, что это http-сервер, то вся затея выглядит довольно сомнительно

Роман
28.09.2017
14:33:15
а почему вы так пул процессов хейтите?)
почему так плохо это решение то?

Nikolay
28.09.2017
14:33:42

Роман
28.09.2017
14:33:58
а селлери решение?

dmks
28.09.2017
14:34:04

Nikolay
28.09.2017
14:34:13
у него сейчас питонокод исполняется для каждого запроса пять минут, теперь он его выкинет в соседний процесс, но он там все равно будет исполняться пять минут
а клиент будет висеть и ждать ответа на сокете

Admin
ERROR: S client not available

Роман
28.09.2017
14:34:21
5с же, не?
и проблема была в очередях, т.к. одни процесс был

Nikolay
28.09.2017
14:35:08
то есть, по сути, ничего не изменится. Если он таким способом хочет обойти GIL - то ок, но тогда сразу же логичный вопрос, что это за наркоманская логика такая, которую написали на чистом питоне и она работает пять минут

Роман
28.09.2017
14:35:10
или каждый понял что хотел?)

dmks
28.09.2017
14:35:31
Наслаждайтесь, я бы взял целери

Nikolay
28.09.2017
14:35:52

Nikolay
28.09.2017
14:36:31

Google

Роман
28.09.2017
14:36:38

Nikolay
28.09.2017
14:36:53
если бы это конвертация видео была или что-то такое - я бы понял, но он говорит, она на чистом питоне...

Роман
28.09.2017
14:37:31
5 сек запрос
ну логику мы все равно не узнаем

Nikolay
28.09.2017
14:37:58
если нагрузка большая такая, что понадобилось масштабировать - то любое улучшение производительности этой логики кардинально поможет улучшить картину

Dmitry
28.09.2017
14:47:01
Впорос про web сокеты, если он открыт и работает, то невозожно одновременно посылать в него сообщение от клиента к серверу и от сервера к клиенты, так?

Глеб
28.09.2017
14:47:23
почему?
и что значит "одновременно"?

Dmitry
28.09.2017
14:47:31
т.е. веб-сокет работает в симплексном режим?

Глеб
28.09.2017
14:48:29
типа и сервер и клиент в течении нескольких едениц времени пишут туда большой файл?

Dmitry
28.09.2017
14:48:51
допустим да
сокет это провод, по нему сигналы могут идти в обе стороны, но не одновременно.

Глеб
28.09.2017
14:49:56
не претендую на истину в последней инстанции, но, кажется, сам процесс возможен, только результат придет по очереди
а стриминг, кажется, не поддерживается
https://github.com/maxogden/websocket-stream
во
не знаю, что там в кишках, но пишут, что сделали дуплексный стриминг
подозреваю, что все-равно шлют данные пачками

Dmitry
28.09.2017
14:53:09
В питоне из коробке как сделано ?

Nikolay
28.09.2017
14:53:28
в питоне из коробки вебсокетов нет вообще