Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PythonRQ作业是否可以重新安排自己并继续依赖周围的作业?_Python_Python Rq - Fatal编程技术网

PythonRQ作业是否可以重新安排自己并继续依赖周围的作业?

PythonRQ作业是否可以重新安排自己并继续依赖周围的作业?,python,python-rq,Python,Python Rq,我有一个PythonRQ作业,可以从Web服务器下载资源 如果是无响应的Web服务器,下载作业是否可以重新安排自己并在一定间隔后重试下载 几个转换作业依赖于通过的下载作业 作业队列。排队(转换任务,取决于=下载作业) 如果下载作业可以自行重新安排,那么依赖作业是否会一直保留,并在下载作业完成后最终执行 我问了关于GitHub项目的问题,该功能现在包含在RQ的1.5.0版中 RQ允许您现在轻松地重试失败的作业。要配置重试,请使用RQ的重试对象,该对象接受max和interval参数 依赖作业将保

我有一个PythonRQ作业,可以从Web服务器下载资源

  • 如果是无响应的Web服务器,下载作业是否可以重新安排自己并在一定间隔后重试下载

  • 几个转换作业依赖于通过的下载作业

    作业队列。排队(转换任务,取决于=下载作业)

    如果下载作业可以自行重新安排,那么依赖作业是否会一直保留,并在下载作业完成后最终执行


  • 我问了关于GitHub项目的问题,该功能现在包含在RQ的1.5.0版中

  • RQ允许您现在轻松地重试失败的作业。要配置重试,请使用RQ的重试对象,该对象接受
    max
    interval
    参数

  • 依赖作业将保留在延迟作业注册表中,直到它们所依赖的作业成功并仅在此时执行

  • 例如:

    from redis import Redis
    from rq import Queue, Retry
    from somewhere import randomly_failing_task, dependent_task
    
    job_queue = Queue(connection=Redis())
    randomly_failing_job = job_queue.enqueue(randomly_failing_task, retry=Retry(max=3))
    dependent_job = job_queue.enqueue(dependent_task, depends_on=randomly_failing_job)
    
    以及示例任务:

    from random import choice
    
    def randomly_failing_task():
        print('I am a task, I will fail 50% of the times :/')
        success = choice([True, False])
        if success:
            print('I succeed :)')
        else:
            print('I failed :(')
            raise Exception('randomly_failing_task failed!')
    
    
    def dependent_task():
        print('I depend upon the randomly_failing_task.')
        print('I am only executed, once the randomly_failing_task succeeded.’)