Планирование многих заданий, которые будут выполняться по метке времени - PullRequest
3 голосов
/ 12 января 2012

У меня есть продюсер, который читает из потока Twitter и помещает задачи в очередь, используя rabbitmq в качестве посредника сообщений.

Задания обычно выполняются в течение 3-5 секунд, и в конце задания я уведомляю пользователя об этом. Однако я также хотел бы напомнить им через 10 минут / 30 минут / 60 минут после их работы, отправив пользователю больше сообщений.

Я не могу найти лучший способ запланировать эти дополнительные сообщения. Я думал о создании заданий cron для запуска сценария сообщений в эти конкретные временные метки, но это казалось неправильным с тысячами заданий в час. Другая идея состояла в том, чтобы запустить демон, который будет опрашивать базу данных или читать из очереди и проверять запланированную метку времени и текущее время перед отправкой.

В идеале, если бы это можно было сделать на стороне брокера сообщений с помощью отложенных сообщений, это сделало бы его намного чище, но я читал, что RabbitMQ не поддерживает что-то подобное.

Каков наилучший способ планирования многих заданий, которые должны выполняться по метке времени?

1 Ответ

0 голосов
/ 12 января 2012

Просто создайте одно задание cron, которое запускается каждую минуту и ​​проверяет другую очередь, в которой есть метки времени для отправки сообщения.По истечении времени отметьте это сообщение и удалите элемент из очереди.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...