首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >beanstalkd上的循环队列

beanstalkd上的循环队列
EN

Stack Overflow用户
提问于 2012-05-22 22:00:01
回答 2查看 349关注 0票数 1

我正在使用beanstalkc,这是beanstalkd应用程序的python包装器。

我想要做的是让生产者把一些工作(例如:'a','b','c','d')放一次,这样消费者就可以不断地获得这些工作(例如:'a','b','c','d','a','b',...)。

在消费者中,我使用job.reserve()获得工作。我本以为解决方案就是保留作业而不删除它们,但在我运行了一些使用者进程后,我得到了一个超时错误。

我显然做错了什么,但我找不到一种方法来“重新排队”消费者使用的作业。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-23 02:33:41

我认为这可能是一个解决方案:

制片人:

代码语言:javascript
复制
queue.put('a', priority=0)

消费者:

代码语言:javascript
复制
job = queue.reserve()
do something with job
new_priority = job.stats()['pri'] + 1
job.release(priority=new_priority)
票数 2
EN

Stack Overflow用户

发布于 2012-05-23 05:47:07

为什么不在你完成一个特定的任务后,在你释放它之后,把你刚刚完成的同一个任务的另一个副本放回队列中呢?

否则,您就会试图让它做一些它不想做的事情。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10703596

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档