从beanstalkd获取作业-超时异常



我使用Python 2.7beanstalkd serverbeanstalkc作为客户端库。

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

我有一个CCD_ 4作业,它将不断向beanstalkd队列添加作业;工人;它将在一个无限循环中运行,获取并处理作业。

例如:

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"异常。

这是从队列中提取作业的最佳做法吗?

有人能帮我一下吗?

调用beanstalk.reserve(timeout=0)意味着等待0秒作业可用,所以它会立即超时,除非已经有工作了调用时在队列中。如果你希望它永远不会超时,使用timeout=None(或者省略超时参数,因为None是默认值)。

相关内容

  • 没有找到相关文章

最新更新