동시에 여러 작업을 수행 할 수 있지만 일단 모든 것이 준비되면 최종 작업을 실행하고 싶습니다. 나는 다음과 같은 코드를 사용하고 있습니다 :모든 작업이 완료되기 전에 셀러리 코드가 실행됩니다.
chunk_tasks = []
for index, chunk in enumerate(chunks):
chunk_tasks.append(import_chunk.s(meta.pk))
g = group(chunk_tasks)
chord(g)(import_completed.s(meta.pk, max_lines=max_lines))
을이 모든 작업이 완료되기 전에 import_completed
이 실행되는 것 같습니다 그러나. 또한 import_chunk
작업은 다음과 같습니다.
@task(bind=True, ignore_result=IGNORE_RESULTS)
def import_chunk(self, meta_pk):
try:
# do some stuff
except Exception, e:
if self.max_retries == self.request.retries:
logger.exception('Unexpected error in import_chunk')
raise self.retry(countdown=60, max_retries=3)
그래서 내가 뭘 잘못하고있는 것입니까?
예, 이미 ignore_result로 문제가 발생하여 False로 설정되었습니다. –