首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从beanstalkd获取作业-超时异常

从beanstalkd获取作业-超时异常
EN

Stack Overflow用户
提问于 2012-07-20 02:53:14
回答 1查看 1.3K关注 0票数 0

我使用带有beanstalkcPython 2.7beanstalkd server作为客户端库。

根据作业的大小,处理每个作业大约需要500到1500毫秒。

我有一个cron作业,它会不断地向beanstalkd队列中添加作业,还有一个"worker“,它会在无限循环中运行,获取作业并处理它们。

例如:

代码语言:javascript
复制
def get_job(self):
    while True:
        job = self.beanstalk.reserve(timeout=0)
        if job is None:
            timeout = 10 #seconds
            continue
        else:
            timeout = 0 #seconds
            self.process_job(job)

这会导致"timed out"异常。

这是从队列中提取作业的最佳实践吗?

有没有人能帮帮我?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-20 06:57:07

调用beanstalk.reserve(timeout=0)意味着等待作业变为可用状态的时间为0秒,因此它将立即超时,除非调用时作业已经在队列中。如果您希望它永远不会超时,可以使用timeout=None (或者省略timeout参数,因为None是缺省的)。

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

https://stackoverflow.com/questions/11567431

复制
相关文章

相似问题

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