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

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

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

Alex
10.06.2019
06:56:24

Google

Егор
10.06.2019
06:56:28

Tishka17
10.06.2019
06:56:36

Егор
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

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

Google

Tishka17
10.06.2019
06:57:51

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

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

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

Tishka17
10.06.2019
07:01:42

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

Егор
10.06.2019
07:02:17

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

Alex
10.06.2019
07:02:50

Google

Tishka17
10.06.2019
07:03:14
Чем мы вообще пытаемся cpu занять?
Рассылкой до клиентов?
Их там тысячи?

Егор
10.06.2019
07:03:45
скажем так, 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
стримы отдаются на одну вебморду

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

Егор
10.06.2019
07:08:41

Google

Tishka17
10.06.2019
07:08:43

Егор
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

Tishka17
10.06.2019
07:10:45

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

Егор
10.06.2019
07:11:19

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