@ru_python

Страница 9290 из 9768
Егор
10.06.2019
06:55:43
теоретически возможно все

Tishka17
10.06.2019
06:55:54
А что тогда за тема со стримами rethinkdb?

Егор
10.06.2019
06:56:07
но я не вижу смысла юзать 2 сервера если у меня в одном из 8 ядер юзается только одно на 90%)

Google
Егор
10.06.2019
06:56:28
А что тогда за тема со стримами rethinkdb?
а это немного другое. это поток в котором генерируется список изменений в таблице

Tishka17
10.06.2019
06:56:36
но я не вижу смысла юзать 2 сервера если у меня в одном из 8 ядер юзается только одно на 90%)
Ну без разницы же, это два процесса на одном сервере или на разных

Егор
10.06.2019
06:56:39
у меня вот есть виртуалка с 8 ядрами под это дело

Alex
10.06.2019
06:56:42
да и даже про виртуалки

Егор
10.06.2019
06:56:52
и через селери кстати нагрузка таки размазывается

Denis
10.06.2019
06:56:56
А зачем тут гевент, можно же на асинке и веб, и сокеты

Alex
10.06.2019
06:57:01
ну естественно

Егор
10.06.2019
06:57:01
только работает оно как-то не совсем очевидно

Tishka17
10.06.2019
06:57:07
Суть в том, что процессы должны быть связаны через какое-то апи

Например, очередь сообщений

Егор
10.06.2019
06:57:31
Например, очередь сообщений
ну celery + redis юзается

Tishka17
10.06.2019
06:57:46
Я просто не знаю что такое стрим rethinkdb, поэтому и думал что это очередь

Google
Tishka17
10.06.2019
06:57:51
ну celery + redis юзается
Да не нужен тебе селери

Alex
10.06.2019
06:57:52
только работает оно как-то не совсем очевидно
возьми вместо целери асинхронный сокетио и запускай пул процессов - воркеров

Егор
10.06.2019
06:57:52
по идее их сельдерей через редис внутри себя и связывает

Tishka17
10.06.2019
06:57:57
Возьми просто очередь сообщегий

Егор
10.06.2019
06:59:52
попробую от нее уже плясать

Alex
10.06.2019
07:00:08
Я ж уже вчера говорил python-socketio

умеет в асинхронный режим

Егор
10.06.2019
07:00:26
ну так flask_socketio тоже работает асинхронно

за счет gevent

Alex
10.06.2019
07:00:44
за счет gevent
ну у тебя ж именно с ним и проблема да?

Егор
10.06.2019
07:00:50
там под капотом все тот же python-socketio

Alex
10.06.2019
07:01:00
я предлагаю взять asyncio

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

Tishka17
10.06.2019
07:01:42
я предлагаю взять asyncio
Как это позволит ему заюзать несколько ядер?

Alex
10.06.2019
07:01:53
у gevent действительно проблема с мультипроцессингом из-за агрессивного манкипатчинга

Егор
10.06.2019
07:02:17
хотя я вообще не уверен что тебе нужна асинхронность, если у тебя каждый клиент запускает стрим.
у меня не клиент их запускает, а сервер, но в зависимости от количества задач существующих в спланке

Tishka17
10.06.2019
07:02:46
Так, а сколько у тебя клиентов?

Google
Tishka17
10.06.2019
07:03:14
Чем мы вообще пытаемся cpu занять?

Рассылкой до клиентов?

Их там тысячи?

Егор
10.06.2019
07:03:45
Чем мы вообще пытаемся cpu занять?
подключение через sdk, забирание данных, отправка сокетио-сообщения

скажем так, 13 стримов грузят ядро на 80%

вот от этого можно считать нагрузку

Tishka17
10.06.2019
07:04:20
Эээ. 13 стримов?

А клиентов сколько?

Я не знаю что такое стрим

Егор
10.06.2019
07:04:46
так

давайте не будем путаться

еще раз

Tishka17
10.06.2019
07:04:58
И как у тебя спланк и rethinkdb смешались

Я так понял, спланк - это что-то типа хадупа?

Егор
10.06.2019
07:05:34
есть "стрим" - это функция в которой запускается бесконечный цикл, каждая итерация опрашивает спланк, и отправляет сообщение по сокетио

Tishka17
10.06.2019
07:05:47
Ээ

Alex
10.06.2019
07:05:50
ээээ

вот точно

и где тут у нас CPU bound

Google
Tishka17
10.06.2019
07:06:13
Ты уверен, что вообще те технологии используешь, которые нужны?

Alex
10.06.2019
07:06:13
инахуа нам мультипроцессинг?

Tishka17
10.06.2019
07:06:29
13 стримов на сколько клиентов?

Егор
10.06.2019
07:06:30
13 стримов на сколько клиентов?
зачем столько вопросов про неких клиентов?

стримы отдаются на одну вебморду

Admin
ERROR: S client not available

Tishka17
10.06.2019
07:06:59
зачем столько вопросов про неких клиентов?
Потому что сокетио связан с клиентами.

Егор
10.06.2019
07:07:00
скажем так там чето типа продвинутого дашбординга

Tishka17
10.06.2019
07:07:02
А остальное - нет

Стримы - это что-то типа топиков в кафке?

и я все ещё не понимаю, откуда тут CPU-bound

Егор
10.06.2019
07:07:42
на клиенте (то есть в браузере) дашборда с 13 окошками, каждое из которых ловит сообщение по сокетио в своем неймспейсе

Alex
10.06.2019
07:07:58
т.е. клиент у нас 1

Егор
10.06.2019
07:07:58
я конкретно описал чуть выше что в данном случае является стримом

т.е. клиент у нас 1
ну допустим да, Одна страница с 13 компонентами, каждый из которых ловит сокетио по своему неймспейсу

Tishka17
10.06.2019
07:08:31
Google
Егор
10.06.2019
07:08:51
рецинк тут вообще для фронта больше

Alex
10.06.2019
07:08:58
ок. то есть 1 клиент, 13 сокетио подключений., которые занимаются IO

Tishka17
10.06.2019
07:09:00
итого, rethink db выкинули. Есть поллинг спланка

Егор
10.06.2019
07:09:03
и для тоого чтобы можно было новую задачу для спланка накинуть с фронта в реальном времени

Tishka17
10.06.2019
07:09:16
так

а CPU тут кто ест?

спланк?

или поллинг спланка?

Alex
10.06.2019
07:09:39
так еще раз, что мешает запустить несколько инстансов фласка?

и разруливать сверху nginx \ gunicorn

Егор
10.06.2019
07:10:23
а CPU тут кто ест?
спланк вообще на отдельном серваке, цпу на мой взгляд жрет поллинг + отправка сообщения по сокетио. Итерация ради теста сейчас занимает 1 секунду

ну будет 2-3

Alex
10.06.2019
07:11:17
я не совсем понимаю что ты собрался делать в мультипроцессинге. крутить бесконечные IO лупы?

Егор
10.06.2019
07:11:19
опрос спланка + отправка сообщения - 1 секунда?
да. опрос происходит по конкретному поиску, уже запущенному там, и забирается json с 15 словарями в списке, по сути строки 3

Tishka17
10.06.2019
07:11:22
а параллелить ты что тут собрался?

Страница 9290 из 9768