У меня есть продюсер, который читает из потока Twitter и помещает задачи в очередь, используя rabbitmq в качестве посредника сообщений.
Задания обычно выполняются в течение 3-5 секунд, и в конце задания я уведомляю пользователя об этом. Однако я также хотел бы напомнить им через 10 минут / 30 минут / 60 минут после их работы, отправив пользователю больше сообщений.
Я не могу найти лучший способ запланировать эти дополнительные сообщения. Я думал о создании заданий cron для запуска сценария сообщений в эти конкретные временные метки, но это казалось неправильным с тысячами заданий в час. Другая идея состояла в том, чтобы запустить демон, который будет опрашивать базу данных или читать из очереди и проверять запланированную метку времени и текущее время перед отправкой.
В идеале, если бы это можно было сделать на стороне брокера сообщений с помощью отложенных сообщений, это сделало бы его намного чище, но я читал, что RabbitMQ не поддерживает что-то подобное.
Каков наилучший способ планирования многих заданий, которые должны выполняться по метке времени?