1

我正在尝试使用 beanstalk 对大量周期性任务进行排队(例如,任务需要每 N 分钟处理一次),对于每个任务,如果最后一个排队的作业没有完成(我的意思是不是保留)当前作业是补充说,最后排队的作业应该替换为当前作业,换句话说,只应处理任务的最新排队作业。

我怎样才能使用beantalk实现这一目标?

我现在的想法是:对于每个任务,使用 memcached 存储其最新的时间戳(在将作业添加到队列时设置),每次工作人员成功保留作业时,它首先检查 memcached 中该任务的时间戳,如果时间戳为该作业与 memcached 中的时间戳相同,然后处理该作业,否则跳过该作业,并将其从队列中删除。

那么有没有更好的方法来做这样的工作呢?请提出您的建议,谢谢。

4

2 回答 2

2

我发现 memcache/beanstalk 组合也是我不希望更新但相同的作业进入队列的实现的最佳解决方案。

于 2012-05-15T21:46:17.287 回答
1

在完成“命名作业”并发布软件之前,这可能是更好的解决方案之一。

于 2011-01-09T19:21:29.840 回答