我需要设立一个工作/消息队列设置一个延迟的任务,以便它不是由自由工人拿起立即选择权,但在一定时间后(可以改变从任务到任务)。我看着一对夫妇的Linux解决方案队列(RabbitMQ的,Gearman的,memcacheq),但他们都不来提供此功能的开箱。

这是我怎么能做到这一点任何想法?

谢谢!

有帮助吗?

解决方案

我用BeanstalkD有很大的影响,使用上插入一个新的工作等待几秒钟,直到该项目成为能够保留延迟选项。

如果你正在做长期的延迟(超过比如30秒),或作业执行(abeit后)比较重要,那么它也有一个二进制日志记录系统,使任何守护程序崩溃仍然有一个纪录的工作。这就是说,我已经把成千上万的现场工作通过Beanstalkd实例和我写的总是比服务器更成问题的工人。

其他提示

您可以使用一个AMQP代理(如RabbitMQ的),我有一个“代理”(例如,Python进程使用pyton-amqplib建),其上的交换的拦截特定消息(具体routing_key)坐在;一旦定时器已经过去时,发送回该消息上用不同routing_key交换。

我明白,这意味着“翻译/映射” routing keys但它的工作原理。用的RabbitMQ和python-amqplib工作是非常简单的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top