@Zohei

Как сделать разовое выполнение задачи в заданное время?

Добрый день!
Какие есть инструменты для выполнение разовых однотипных задач в заданное время?
Пример из жизни в общих чертах:
Покупатель оформляет предварительный заказ в службе доставки магазина, который в данный момент закрыт. Уведомление о заказе по смс уходит в никуда, т.к. по различным причинам, не зависящим от разработчика, исполнитель может игнорировать заказы, которые валились к нему ночью.
Магазинов и исполнителей много и время работы у всех разное.

Нужно каким-то образом делать отложенное уведомление в заданное время.
Например, В 9:00 выслать смс с заказом №1 Василию, а в 11:23 заказ №4 Петровичу.

Не уверен, что cron срипт, выполняющий проверку каждую минуту и сверяющий время заказа со временем открытия заведения, хорошее решение.

Надеюсь на ваш опыт решения подобных задач, заранее спасибо)
  • Вопрос задан
  • 2526 просмотров
Пригласить эксперта
Ответы на вопрос 1
@angry_bender
PHP, JS
Решал похожую задачу как раз через cron скрипт и сверку времени), при это задача кладется в специальную таблицу в БД с указанием времени когда ее "запустить".
Не считаю что данное решение совсем уж плохое, и вот почему:
1. Никакой менеджер сообщений не поддерживает в стабильной ветки отложенные сообщения, т.к. протокол AMQP в приципе не поддерживает отложенную доставку
2. Решение через cron абсолютно стабильно по сравнению с отдельным php-демоном: вероятность падения crond практически нулевая.
3. Простота отладки (по сравнению с отдельным php демоном).
4. Практически "искаробочная" интеграция очереди заявок/сообщений с админкой сайта.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы