我需要设置一个作业/消息队列,并为该任务设置一个延迟,以使它不会被免费的工作人员立即拾取,而是经过一定的时间(因任务而异)。我研究了几个Linux队列解决方案(rabbitmq,gearman,memcacheq),但是似乎没有一个提供开箱即用的功能。
关于如何实现此目标的任何想法?
谢谢!
最佳答案
我使用BeanstalkD效果很好,在插入新作业时使用了delay选项,以等待几秒钟,直到可以保留该项目为止。
如果您要进行较长时间的延迟(例如说超过30秒),或者要执行一些重要的工作(以后再执行),那么它也具有二进制日志记录系统,因此任何守护程序崩溃都将保留该工作的记录。就是说,我已经通过Beanstalkd实例放置了数十万个实时作业,而我编写的工作人员总是比服务器更有问题。
关于message-queue - 具有延迟的简单可扩展工作/消息队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2364080/