I have a producer that reads from a twitter stream and places tasks on a queue using rabbitmq as the message broker.
The jobs usually takes around 3-5 seconds to execute and at the end of the job I would notify the user when it is done. However, I would also like to remind them in 10 minutes/30 minutes/60 minutes after their job is done by sending the user more messages.
I cannot figure out the best way to schedule these additional messages. I thought of creating cron jobs to run a message script at those specific timestamps, but that seemed wrong with thousands of jobs an hour. Another idea was to run a daemon that would poll a database or read from queue and checks the scheduled timestamp and current time before sending out.
Ideally if this could be done on the message broker side through delayed messages it would make it much cleaner, but I read that RabbitMQ does not support something like that.
What would be the best way to go about scheduling many jobs that needs to be executed by timestamp?