Добрый вечер, настраиваю месенджер по этому руководству: https://symfony.com/doc/current/messenger.html Меня интересует возможность отправлять сообщения

"не ранее указанной даты". То есть при отправке сообщения в автобус иметь возможность задавать датувремя и чтобы сообщение обрабатывалось не раньше этой даты.

Сейчас планирую передавать дату время как поле сообщения, а в хендлере сообщения делать проверку: если дата ещё не наступила, то выбрасывать RecoverableMessageHandlingException

Но это очёнь стрёмный костыль. Есть решение лучше?

11 ответов

9 просмотров

а не проще послать по крону? Так как если что-то случится в период между отправкой и началом обработке может сообщение потеряться, если этот период времени будет большим.

Дочитай доку до конца. Там пишут про делэи.

Kos Smokvin- Автор вопроса
Vyacheslav Nikitin
а не проще послать по крону? Так как если что-то с...

Не очень проще. Планируется рассылка большого количества сообщений разных типов. И некоторые из них вот имеют особенность, что нужно отправлять не раньше указанного срока. Выделять этот подсегмент отдельно в крон - как то размоет архитектуру. Хотелось бы сохранить в месенджере. Но не понял по поводу "случится между началом и и отравкой, то потеряется". Можете ли Вы пожалуйста, рассказать подробнее на примере?

Kos Smokvin- Автор вопроса
Vadim
Дочитай доку до конца. Там пишут про делэи.

Да, вот читаю про Stamps, спасибо. Это выглядит менее костыльно, но как то всё равно немного не то. там делей в секундах - насколько я понимаю - от времени попадания сообщения в автобус/ Для дебага как то несовсем удобно, когда отложить нужно на насколько недель например. Но не критично, буду пробовать

Kos Smokvin
Не очень проще. Планируется рассылка большого коли...

Ну mq это все же такая вещь предназначенная для независимой связки нескольких сервисов/программ. И на сколько я помню популярные брокеры сообщений не всегда хранят все очереди на диске. Да там можно вроде все это настроить, но все же. И они не предназначены для хранение данных. А в вашем случае вы там собираетесь хранить данные на протяжении недели. И на сколько я понимаю очередь будет пухнуть в течении недели. Хотя можно сгенерить сообщение именно тогда когда надо их обработать и отправить их в очередь. А случиться с очередью может что угодно. в полоть до того что допустим место закончится когда очередь будет пухнуть. А если отправлять сообщения в момент когда надо их обработать, то отправка и обработка очереди будет идти параллельно.

Kos Smokvin
doctrine

в данном кейсе сообщения сохранить отдельно в таблице, а в месаджере получать списки с необходимыми фильтрами и отправлять

𝔏𝔦𝔩𝔦𝔱𝔥
транспорт хоть уточни какой

Должно быть не важно какой транспорт. Сегодня это одно, а завтра уже может быть другой. И реализация не должна зависеть от транспорта.

Vyacheslav Nikitin
Должно быть не важно какой транспорт. Сегодня это ...

а еще не важно какая база да ведь мы каждый день меняем базы на проекте

Vyacheslav Nikitin
Должно быть не важно какой транспорт. Сегодня это ...

если это не опенсорс, то как скзал Сергей, зачем? Да и проекты чаще умирают, чем получают рзвитие до масштабофф "нужно поменять транспорт"

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

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

Добрый день, не подскажите, если в OC-V3 поменять страндартную директорию /storage/ на /storage2/ - не будет сильно много проблем ?
Max Dubovsky
32
'frakturBold' => ['𝖆', '𝖇', '𝖈', '𝖉', '𝖊', '𝖋', '𝖌', '𝖍', '𝖎', '𝖏', '𝖐', '𝖑', '𝖒', '𝖓', '𝖔', '𝖕', '𝖖', '𝖗', '𝖘', '𝖙', '𝖚', '𝖛', '𝖜', '𝖝', '𝖞', '𝖟', '𝕬', '𝕭', '𝕮', '𝕯'...
Roma
4
А сколько часов мак держит зарядку в рабочем режиме? Например мой Redmi Mac (просто наклейка от айфона осталась, налепил) по началу держал часов 5 с парой открытых штормов и ...
Ross
8
Каким то образом можно определить ширину экрана пользователя перед загрузкой partial-а? Надо рассчитать ширину кадров слайдера для ресайза картинок для container-fluid.
Point 111
22
Ребят, а вот такой вопрос: если я владелец бота анонимного чата, в котором, например, имеются подписки, используя какую-нибудь ЮКассу (или тому подобное, в общем с налогами, в...
Eugene Неелов
8
Гнева и тупости пост. Как блять можно работать с маркетологами? Их в детстве всех родители случайно цепляли об дверные откосы? Поступила таска, на сайте "лишний счетчик Google...
Igor
4
Всем привет. А никто не в курсе у бота может быть заблокированна возможность принимать звезды? На одном боте вызываю sendInvoice с нужными параметрами все ок, на втором дела...
John Doe
2
а у тг (бот) апи вообще есть статусная страница, кстати?
e\\/gen
5
Вообще сейчас эти все провайдеры облаков оборзели. Если тебе нужно 4 ядра и 4 гб., хер где такую конфигурацию найдешь. Суют тебе сразу либо 8гб. либоа сразу 16 гб., они мне на...
Igor
4
Всем привет, хотел бы спросить для дальнейших задач кто что знает про ИИ на php? Машинное обучение все дела Кнш не самое подходящее для ИИ, но может кто что знает за эту тему
Dororo Steeeve
1
Карта сайта