我有一个main_task(例如G1),它应该并行执行多个任务(说T1到T9任务)。 工人收到G1并开始执行。 G1将T1发送到T9(9个任务)给工作人员,并且工作人员已收到所有9个任务。 工作者成功执行任务T1至T8(前8个任务)。 任务T9由工作人员接收,但不执行。 超时30分钟后,G1(main_task)引发TimeOutError并停止执行。那是工人开始执行任务T9的时候。
任何解决此问题的帮助将不胜感激。谢谢。
def bla(something):
# do something
@shared_task
def main_task():
process_start_time = datetime.datetime.now()
job_list = []
for i in i_list:
job_list.append(bla.s(i))
job = group(job_list)
result = job.apply_async()
while result.waiting():
print('waiting..')
time.sleep(5)
if (datetime.datetime.now() - process_start_time).seconds >= 1800: # 30 minutes timeout
return TimeOutError
if result.ready():
# do something