没有超时的Python-RQ工作



有没有办法指定工人的"最大" =超时?我有一些长期运行的任务,如果由于超时而导致某些事情失败,我会在工人内部进行内部处理。

a可以通过CLI?

指定。

超时参数指定任务的最大运行时,然后将其视为'丢失'。可以与@Job,队列,顾问一起使用&enqueue_call。

from rq.decorators import job
@job('low', connection=my_redis_conn, timeout=600)
def long_running_task(x, y):
    # Code

python-rq.org/docs

设置 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')

最新更新