Комментарии 9
Чем не подошли river или airflow?
Не согласен со всеми минусами для DB в таблице. Я бы минус поставил в строку «произвольная точность» ибо она зависит от periodic, но это можно решить подпиской на изменения, в том же Postgres
Выполнилась один раз — и тут же поставила себя ещё на одно исполнение, потом ещё и ещё
Вы изобрели агенты Битрикса)
RabbitMQ так-же в точности поддерживает pull и можно легко брать ровно столько задач, сколько потребуется (basic.get, basic.consume), никуда не захлёбываясь совершенно, и легко можно организовать скважность по количеству задач из одной очереди в расчёте на одного консьюмера, чтобы делить их равными кусками, а не по принципу кто первый смог всё выгрести. Необработанные задачи остаются в очереди задач и никуда не исчезают. При необходимости легче лёгкого организовать dead letter exchange и обрабатывать такие случаи специальным образом и даже возвращать их обратно в основную очередь.
Я лет 10 назад делал что-то подобное на Кролике (систему рассылки СМС и почты на миллионы получателей с отложенной отправкой и т.п.) и столкнулся со всякими разными проблемами, в том числе с Dead Letter и прочим.
Подробностей не помню точно, но оно не было "легче лёгкого" точно.
Опять же очерёдность сообщений там явно мешала, как сказано в статье - в таких системах он не нужна.
В итоге оно, конечно, работало, но не идеально.
Очень забавно наблюдать, как 2 разные команды из Яндекса с разницей в 1 день расписывают 2 своих велосипеда на одну тему - причем, не очень согласующихся между собой в показаниях :)
Вот читаю эту статью, и буквально справа в ленте предложки вижу это: https://habr.com/ru/companies/yandex/articles/972164/
Если я правильно понял суть проблемы, была необходимость отсылки сообщений в определенную дату-время или с определенной периодичностью.
А рассматривали ли вы комбинацию использования Scheduler в связке с очередью?
Внутреннее устройство принципиально очень сильно напоминает то, как организованы таймеры в ОС
Подскажите это закрытый сервис или планируется его открывать?
Не Кафкой единым: как наладить асинхронный обмен сообщениями между микросервисами