【发布时间】:2016-06-24 12:12:14
【问题描述】:
有没有办法为工作人员指定“最大”= inf 超时? 我有一些长时间运行的任务,如果由于超时而失败,我会在工作人员内部处理它。
可以通过 cli 指定吗?
【问题讨论】:
标签: python-3.x redis queue python-rq
有没有办法为工作人员指定“最大”= inf 超时? 我有一些长时间运行的任务,如果由于超时而失败,我会在工作人员内部处理它。
可以通过 cli 指定吗?
【问题讨论】:
标签: python-3.x redis queue python-rq
timeout 参数指定任务在被认为“丢失”之前的最大运行时间。可以与@job、Queue、enqueue 和 enqueue_call 一起使用。
from rq.decorators import job
@job('low', connection=my_redis_conn, timeout=600)
def long_running_task(x, y):
# Code
【讨论】:
设置Queue(default_timeout=-1) 可以解决问题。以下是对他们源代码的参考:
def create_job(self, func, args=None, kwargs=None, timeout=None,
result_ttl=None, ttl=None, failure_ttl=None,
description=None, depends_on=None, job_id=None,
meta=None, status=JobStatus.QUEUED, retry=None):
"""Creates a job based on parameters given."""
timeout = parse_timeout(timeout)
if timeout is None:
timeout = self._default_timeout
elif timeout == 0:
raise ValueError('0 timeout is not allowed. Use -1 for infinite timeout')
【讨论】: