rabbitmq 最多运行6个小时的celery 任务,如果超过6个小时,是否再次运行相同的任务?

tyg4sfes  于 2022-11-08  发布在  RabbitMQ
关注(0)|答案(1)|浏览(149)

我有使用django项目与celery + rabbitmq,我的一些任务需要像6小时或更多,甚至堆栈,所以我想重新运行相同的任务,如果它需要超过6小时如何做到这一点,我新的celery ?

lkaoscv7

lkaoscv71#

你可以试试;

from celery.exceptions import SoftTimeLimitExceeded

@celery.task(soft_time_limit=60*60*6) # <--- Set time limit to 6 hours
def mytask():
    try:
        return do_work()
    except SoftTimeLimitExceeded:
        mytask.retry() # <--- Retry task after limit of 6 hours exceeded

相关问题