Запустите задачу 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