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

Пытаюсь понять gen_stage. Может кто-нибудь ткнуть на какую-нибудь статью или подсказать

как лучше организовать:
есть список каких-то абстрактных объектов. Продюсер и консюмер я запускаю при старте приложения.
Хочу этот список объектов толкнуть в продюсер вручную, чтобы он делал какую-то работу по каждому объекту и дальше отдавал в консьюмер результат.

Как это лучше сделать? )

13 ответов

21 просмотр

емнип ген стейдж немного про другое — это не "толкнул и оно обработало", а "запустил, оно всё вычитало и обработало"

Maxim- Автор вопроса
Fried Zucchini
емнип ген стейдж немного про другое — это не "толк...

отработало и приложение завершило работу? И если надо еще обработать данные, опять запускать его?

Не считая дополнительной бизнес-логики, вот пример такого продьюсера в нашей кодовой базе. Буквально позволяет класть объекты в себя, делает доп работу, и отправляет по мере запросов в консумер. Разница только в том что хранит в ETS и не удаляет сразу после отправки, а ждёт "acknowledgement" от консумера https://github.com/electric-sql/electric/blob/main/components/electric/lib/electric/replication/satellite_collector_producer.ex

посмотри, кстати, на Broadway. более высокоуровневая штука поверх gen_stage с кучей плюшек. свой producer написать туда несложно. много статей в гугле есть на эту тему. вот какая-то относительная свежая статья, только что нашёл в гугле, подробно не читал, но после поверхностного взгляда явной лажи схожу не увидел (это не значит, что её там нет): https://softwaremill.com/constructing-effective-data-processing-workflows-using-elixir-and-broadway/

heathen
посмотри, кстати, на Broadway. более высокоуровнев...

сколько раз пытался применить -у меня все просто в пул воркеров вырождалось, может я неправильно мыслил?

Źmićer Rubinštejn
А почему это плохо?

хотелось хоть гдето применить

john conor 
сколько раз пытался применить -у меня все просто в...

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

heathen
посмотри, кстати, на Broadway. более высокоуровнев...

Никому не советую использовать Broadway. Там нет и половины заявленного функционала. Из Broadway можно использовать только адаптеры к очередям, и всё

Lama Lover
Никому не советую использовать Broadway. Там нет и...

А чего именно нету и почему никто на спаунфесте еще не допилил?

Źmićer Rubinštejn
А чего именно нету и почему никто на спаунфесте ещ...

Потому что не нужно. Нет параллельных процессоров, и нет многоэтапности. То есть Бродвей может просто батчить сообщения из продюсеров, и процессить их в одном степе и всё

Lama Lover
Никому не советую использовать Broadway. Там нет и...

Прекрасно использую Бродвей без родных адаптеров, потому что источник данных другой. ЧЯДНТ? 🤷🏼‍♂️

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта