从beanstalkd获取作业超时异常

2024-05-16 21:56:47 发布

您现在位置:Python中文网/ 问答频道 /正文

谢谢你的阅读。在

我使用Python 2.7beanstalkd server和{}作为客户端库。在

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

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

例如:


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

这是从队列中抽出工作的最佳实践吗?在

有人能帮我一下吗?在


Tags: selftrue客户端getserver队列def作业
1条回答
网友
1楼 · 发布于 2024-05-16 21:56:47

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

相关问题 更多 >