169 похожих чатов

Господа у меня вопрос. Есть основной монолит, и стоит задача нужно

слушать какую-то очередь. Я думал реализовать так - при запуске монолита рядом создается отдельный тред который слушает очередь и что-то делает и имеет контекст монолита, или лучше сделать отдельное приложение который отдельно запускает свой процесс?

Слушателей очереди может быть больше чем 1.

Отдельный процесс так же будет иметь контекст монолита.

Пока больше склоняюсь к тому что будет отдельный докер компоуз который будет запускать слушателей очереди как отдельный процесс.
Может есть тулзы или статьи как вообще люди питонисты делают?

11 ответов

8 просмотров

А от чего зависит количество слушателей?

Pythonic- Автор вопроса
Pavel Павлик
А от чего зависит количество слушателей?

Возможно от трафика, что бы можно было без боли скейлить все это дело. Увеличивать уменьшать количество воркеров и т.д.

Pythonic- Автор вопроса

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

Pythonic
Я думал использовать какой-то dramatiq, но воркер ...

То есть у тебя в рамках одного монолита и синк и асинк?

А в контекст входит общая бд?

Pythonic
бд тоже да.

Ну, тут вопрос какая тогда тебе польза будет от того, чтобы выносить этот функционал из монолита. У тебя появятся проблемы с синхронными релизами, слежением за обратной совместимостью, вынесение логики в библиотеки (иначе дубликация кода), конфигов больше Я в этом вижу смысл только, если ты хочешь переходить от монолита к микросервисам или SOA, либо если нагрузка на эту часть приложения намного больше, чем на основную, поэтому скейлить ее будет быстрее и проще.

Pythonic- Автор вопроса
Pavel Павлик
Ну, тут вопрос какая тогда тебе польза будет от то...

если не выносить то создавать thread? и там запускать слушателя?

Pythonic- Автор вопроса
Pythonic
или ты про разделение синк асинк апки?

Нет, асинк и треды лучше не никогда не смешивать

Похожие вопросы

Обсуждают сегодня

Такой вопросец - есть функция function MySuperDuperConcat(const a: array of AnsiString): AnsiString; Как мне в её теле сделать вот так? Result:=Concat(a); А не грустный вариан...
notme
15
type TObj = object procedure Init; virtual; end; TObj1 = object(TObj) procedure Init; override; end; procedure TObj1.Init; begin inherited; end; procedur...
Alexander 👋
29
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
48
А чем вам питонисты не угодили?😂
.
79
Можно ли загрузить скрипт py в бота чтобы он работал по нему? как это сделать?
huskadam #RCC Фанат? @hitlerpvp
13
Всем здравствуйте! Я хотел узнать сколько стоит средняя месячная зарплата у Electron js разработчиков? Мне очень это важно и нужно, плиз помогите узнать эту инфу! Для Джунио...
U.K.
10
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
77
А дин типизация это хорошо или плохо?
Alexey
12
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Исходники плюс документация? Вы гоните)) демок хватит всем
zamtmn
11
Карта сайта