чтобы почта отправлялась только в рабочее время, то есть если событие произошло в 22 то письмо ушло в 9 утра на следующий день. Вижу 4 способа это сделать но понимаю что они неверные.
Отключать сервисы в нерабочее время – перенос бизнес - логики на инфраструктуру, плохо.
Настраивать скоупы консумеров – перенос логики в спринг, плохо.
Проверять текущее время внутри обработчика и не обрабатывать если сейчас не рабочее время – плохо (будет 100500 попыток обработки).
Писать в таблицу и включать в 9 утра шедулер – можно, но это дополнительное - негибкое и неотказоустойчивое «из коробки» звено.
Наверняка есть бест практик для «отложенных сообщений», кто что знает?
Поднять свой smtp сервер и в нем настроить массовую рассылку. 😂
Я бы убирал то что в не рабочее время в очередь и с 9 утра каждый день из этой очереди в отдельном потоке отправлял
Например с помощью каск шедулера
А что насчёт cronjob? Или просто слипать тред, который вызывает цикл вычитки сообщений, на определённый срок?
Спасибо! Во всех ваших примерах так или иначе есть шедулер (хронджоб и т д) - а дальше уже вопрос реализации - писать ли в бд или в новый топик и запускать в 9 шедулер. А я думал можно обойтись без него, только кафкой, то есть что-то вроде сообщения с таймером, которые приходят в 9. Погуглю есть ли такое.
Обсуждают сегодня