@kicherov_maxim

Как запускать срипты, по времени указаному в бд?

Добрый вечер. Как лучше организовать следующую задачу. В базе данных хранятся фио, номера телефона, и время удобное для рассылки. Нужно каждый день осуществлять рассылку в индивидуально удобное время.

Идея есть допустим в полночь формировать в отдельной таблицы сообщения со статусом не отправлено, а потом в кроне каждую минуту делать SELECT из этой таблицы и проверять если статус=не отправлено и время < текущего, то отправлять и менять статус. Смущает меня, если вся отправка будет дольше минуты выполняться наверное плохо будет...

Смотрю в сторону celery, rabbitmq не могу понять для этого они или не для этого, может как то там можно очередь сформировать для отправки?

Подскажите какие архитектурные решения можно применить?

P.S. ОС UBUNTU, язык python, бд postgres.
  • Вопрос задан
  • 23 просмотра
Пригласить эксперта
Ответы на вопрос 2
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Э скрипт запускаемый раз в 1 минуту или раз в 5 минут и вытаскивающий время отправки.

Для перфекционизма можно настроить локальный почтовик с лимитами отправки, что бы не заспамить почтовый сервер, ну и обрабатывать отбои писем.
Ответ написан
Комментировать
@Germanjon
Насколько принципиально отправлять сообщения в конкретно взятое время (к примеру, в 08:33:57)? Можно ли направлять сообщения с точностью "плюс-минус час"?
Если можно, то достаточно создать 24 файла вида send_at_0900.txt, в каждый из которых накидать почтовые адреса предстоящей отправки. А потом раз в час пробегать скриптом по требуемому файлу и обеспечивать отправку (как уже писали выше "можно настроить локальный почтовик с лимитами отправки, что бы не заспамить почтовый сервер, ну и обрабатывать отбои писем.").
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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