Запустите задачу celery максимум на 6 часов, если она займет больше 6 часов, запустите ту же задачу снова?

я использую проект django с celery + rabbitmq, некоторые из моих задач занимают около 6 часов или больше, даже стек, поэтому я хочу повторно запустить ту же задачу, если она занимает более 6 часов, как это сделать, я новичок в celery?

Вы можете попробовать;

from celery.exceptions import SoftTimeLimitExceeded

@celery.task(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
Вернуться на верх