@ru_python

Страница 9292 из 9768
Егор
10.06.2019
07:28:55
а почему один стрим не может опрашивать несколько поисков?
придется писать сложную логику в стриме, и не факт что это оптимизирует нагрузку

Tishka17
10.06.2019
07:29:03
и второй вопрос - почему вообще надо несколько стримов для опроса? Почему нельзя из одного опрашивать все поиски?

откуда там логика, ты же просто результат получаешь

Google
Tishka17
10.06.2019
07:29:22
или ты что-то ещё с ним делаешь?

Егор
10.06.2019
07:29:34
го в личку?

Tishka17
10.06.2019
07:29:42
я думаю алексу тоже интересно

Егор
10.06.2019
07:29:56
можем сообразить на троих

ахахха

Tishka17
10.06.2019
07:30:12
Так ты что-то ещё считашеь что ли после получения из спланка?

Егор
10.06.2019
07:33:56
Так ты что-то ещё считашеь что ли после получения из спланка?
понимаешь в чем дело, теоретически вопрос хороший. я могу передавать в один стрим список ID спланковских задач, и будет только одна запущенная функция watch_events() (стрим), внутри которого будет отправка сразу многих socketio сообщений в разные неймспейсы. но зачем это делать, если достаточно просто для каждого существующего id задачи запускать стрим в процессе. другой вопрос что это ломает сокетио

а если запускать таску в celery то не ломает

Tishka17
10.06.2019
07:34:33
да забудь про celery. Он расчитан на такски, а у тебя не таск, а процесс долгоживущий

а остальные процессы не в курсе ничгео об этом таске

Егор
10.06.2019
07:37:56
так, давай вернемся. А почему это ломает socketio? Вот ты запустил несколько socketio процессов. Перед ними nginx. Клиент подключился к какому-то и сказал какой таск он слушает, ты запустил стрим и обслуживаешь его
все верно, давай тогда определим такую вещь. На данный момент в __init__.py сокетио иницилизизируется вот так: socketio = SocketIO(app) Как я понимаю, в принципе мою задачу можно решить, инициализируя его внутри моей функции watch_events()

Google
Егор
10.06.2019
07:38:17
то есть вместо app должен быть другой оъект

Tishka17
10.06.2019
07:38:21
нет

просто запусти несколько копий на разных портах и через nginx балансируй

Егор
10.06.2019
07:39:00
просто запусти несколько копий на разных портах и через nginx балансируй
тогда речь уже идет об использовании микросервисов же

Tishka17
10.06.2019
07:39:13
это не микросервисы, это масштабирование =)

микросервисы про другое

несколько копий процесса - это не микросервисы. =)

Егор
10.06.2019
07:40:33
хм

как-то дрочно все это на самом деле

по логике должен быть мультипроцессинг

он прямо ложится на логику

но зараза вебсокеты подкидывают собаку

Tishka17
10.06.2019
07:41:55
Я все ещё не вижу собаку

Егор
10.06.2019
07:42:06
видимо тут не попробуешь не увидишь

flask_socketio просто берешь, поднимаешь сначала в обычном фласке, затем суешь отправку сообщения в некий модуль с функцией, под которую выделяется полток - и оказывается, что без gevent или greenlet работать не будет вообще

а из multiprocessing.Process уже сам gevent и greenlet не работает

итого процесс то сам запустится, принты отпринтятся, действия выполнятся, а сообщения по socketio не отправятся, как будто их и не было

я с этой ебалайкой полгода назад возился месяц не меньше, и сейчас уже почти неделю

Dark
10.06.2019
07:45:17
почему zip data.zip /content/data/ создает врхив с пустыми папками content и data? там около 2гб данных во вложенных файлах должно быть

Tishka17
10.06.2019
07:53:13
итого процесс то сам запустится, принты отпринтятся, действия выполнятся, а сообщения по socketio не отправятся, как будто их и не было
Почему не запустятся? У тебя разные коннекты от клиента приедут на разные сервера. И каждый пусть отсылает что хочет

Google
Tishka17
10.06.2019
07:53:24
Или ты хочешь один Коннект с клиентом и много стримов?

Егор
10.06.2019
07:54:21
Почему не запустятся? У тебя разные коннекты от клиента приедут на разные сервера. И каждый пусть отсылает что хочет
не запустится потому что gevent не будет работать с процессом, и задача на отправку сообщения с точки зрения синтаксиса ошибку не выдаст, но работать не будет. просто будет делать ничего.

при этом если создавать не в процессе а в треде - все работает

Tishka17
10.06.2019
07:54:49
Блин, просто две абсолютно одинаковые копии процесса отдельно запустить

Не из кода

Просто отдельно

И каждый пусть держит Коннект с какими-то клиентом

Егор
10.06.2019
07:55:37
Блин, просто две абсолютно одинаковые копии процесса отдельно запустить
тогда работать будет, но я считаю что это какой-то костыль. да и что будет отвечать за запуск этих процессов, ведь количество Клиентов будет все время разным

от 0 до 30 например

Tishka17
10.06.2019
07:55:42
И под каждый Коннект с клиентом - стрим

Никто. Число процессов по числу ядер

Фиксированное

Tishka17
10.06.2019
07:56:29
А внутри каждого уже твой гевент

Егор
10.06.2019
07:56:33
а что будет раскидывать "стримы" по этим процессам?

Tishka17
10.06.2019
07:56:38
Клиент лезет с указанием стрима и попадает на какой-то сервер.

А там при коннекте клиента стрим и запускается

Но если у тебя будут сотни клиентов, это все выглядит все ещё стрёмно

[Anonymous]
10.06.2019
07:58:46
тишка

Tishka17
10.06.2019
07:58:52
Потому что ты так и не объяснил, почему поллинг у тебя жрет так многл

Google
Егор
10.06.2019
07:59:45
тогда еще уточню, на фронте используется Vue.js с клиент-сайд рендерингом. Положим что страница открыта в браузере у одного клиента. На странице дашборд с 13 окошками - каждое из них это экземпляр компонента vue.js в котором открывается socketio.on (сокетио сервер, который ловит сообщения)

вопрос

это сколько клиентов?)

1 или 13?)

не думаю что в данном случае нджинкс что-то поймет

у него есть location для сокетио, и все

ну и число 13 здесь условное, их может быть 0 а может быть 20

и эту страницу одновременно может так-то открыть несколько человек

Admin
ERROR: S client not available

Егор
10.06.2019
08:05:50
Много?
допустим раз 10

Tishka17
10.06.2019
08:05:58
Ну ещё вариант - разделить поллинг спланка (раз он медленный) и отправку клиенту

Но имхо, надо чтобы поллинг больше одного таска брал

Alex
10.06.2019
08:19:15
Ну ещё вариант - разделить поллинг спланка (раз он медленный) и отправку клиенту
так что пришли к варианту нескольких инстансов фласка?

Tishka17
10.06.2019
08:19:27
правда я так и не понял что у него CPU ест

Alex
10.06.2019
08:19:41
я правда немного не понимаю зачем там фласк ко всему этому ну да ладно

Tishka17
10.06.2019
08:20:16
как мне в typing указать что параметр - датакласс?

Aragaer
10.06.2019
08:20:34
ну у него же есть тип

Google
Tishka17
10.06.2019
08:20:51
какой?

Aragaer
10.06.2019
08:20:59
такой, который у него есть

Tishka17
10.06.2019
08:21:05
не

у меня функция сейчас имеет вид def some(class_: Type): f = dataclass.fields(class_) ...

Max
10.06.2019
08:22:14
https://stackoverflow.com/questions/54668000/type-hint-for-an-instance-of-a-non-specific-dataclass чекни, не оно?

Tishka17
10.06.2019
08:22:15
вот надо не Type а именно что датакалсс

ну понятно, протокол

ладно, тогда пофиг

ееее

PEP 544 приняли!

Ivan
10.06.2019
08:26:48
я не сильно шарю, что там нового?

[Anonymous]
10.06.2019
08:27:22
тишкаааа

Alex
10.06.2019
08:27:31
я не сильно шарю, что там нового?
https://www.python.org/dev/peps/pep-0544/

Ivan
10.06.2019
08:27:58
https://www.python.org/dev/peps/pep-0544/
та я хотел summary)) читаю уже

Tishka17
10.06.2019
08:32:47
[Anonymous]
10.06.2019
08:46:20
чо?
пивееет☺️

Olga Pesnya
10.06.2019
08:53:06
#вакансия #работа #офис #Питер #СПб #fulltime #python Всем привет! Разбавлю обсуждение интересной вакансией: Ищу кандидата на позицию Senior python dev (так же подойдет сильный Middle) Это международная продуктовая компания "Quest Software" из Калифорнии. В компании очень высокий уровень разработки. Работать предстоит над облачным SaaS сервисом бэкапа и восстановления данных: это новый проект, ему 2-3 года. Кстати, они очень плотно работают с Microsoft и получают новинки раньше других. Требования: -Опыт разработки веб-приложений не менее 6 лет; -Уверенные знания Python -Опыт администрирования Linux -Разговорный и письменный английский (средний или более высокий уровень) -Знание виртуализации и контейнеризации (Docker, Kubernetes) -Amazon Web Services/Azure/Google cloud services experience -Асинхронное программирование Asune, Asuncio, aiohttp и другие -Опыт работы с базами данных NoSQL (Cassandra, Redis, MongoDB) и связанными с ними технологиями Предлагаем: -Официальное оформление. Полностью “белая” з/п + есть годовая премия в размере 8% от годового дохода. -Зарплатная вилка 145 000 – 195 000 -Отпуск 36 дней. -Кабинетная система, тихая уютная, без шумных опенспейсов. При этом есть общая зона, где можно пообщаться, кухня. Если есть вопросы по вакансии, да и не только, пишите в личку

polunin.ai???
10.06.2019
08:55:05
#вакансия #работа #офис #Питер #СПб #fulltime #python Всем привет! Разбавлю обсуждение интересной вакансией: Ищу кандидата на позицию Senior python dev (так же подойдет сильный Middle) Это международная продуктовая компания "Quest Software" из Калифорнии. В компании очень высокий уровень разработки. Работать предстоит над облачным SaaS сервисом бэкапа и восстановления данных: это новый проект, ему 2-3 года. Кстати, они очень плотно работают с Microsoft и получают новинки раньше других. Требования: -Опыт разработки веб-приложений не менее 6 лет; -Уверенные знания Python -Опыт администрирования Linux -Разговорный и письменный английский (средний или более высокий уровень) -Знание виртуализации и контейнеризации (Docker, Kubernetes) -Amazon Web Services/Azure/Google cloud services experience -Асинхронное программирование Asune, Asuncio, aiohttp и другие -Опыт работы с базами данных NoSQL (Cassandra, Redis, MongoDB) и связанными с ними технологиями Предлагаем: -Официальное оформление. Полностью “белая” з/п + есть годовая премия в размере 8% от годового дохода. -Зарплатная вилка 145 000 – 195 000 -Отпуск 36 дней. -Кабинетная система, тихая уютная, без шумных опенспейсов. При этом есть общая зона, где можно пообщаться, кухня. Если есть вопросы по вакансии, да и не только, пишите в личку
>более 6 лет опыта Такие монстры существуют в природе? Мне кажется после 6 лет уже не будешь код писать. Ну или мне кажется.

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