저는 Python의 itertools를 통해 많은 제품 목록을 생성하는 프로그램을 가지고 있습니다. 기본적으로 단어의 다양한 조합의 큰 세트. products() 함수를 통해 실행할 여러 세트가 있습니다. 제가하고 싶은 것은 Celery가 각 세트에 다른 Celery Task를 부여한 다음,이를 결국 결합하는 것입니다. 나의 이해는 화음이 이것을하는 방법이다.Django Celery Chord Not Execution
callback = tabulate_results.subtask()
header = []
for combo in combos_to_run:
header.append(run_product.subtask(args=(object_terms, combo)))
result = chord(header)(callback)
result.get()
그리고 두 개의 지원, 제거 다운 기능 :
그래서 기본적으로 나는이가 처음에
from celery import subtask, chord
@task()
def run_product(object_list, combo_set):
results = []
for result in product(object_list, *combo_set):
results.append(result)
return results
@task()
def tabulate_results(result_sets):
master_set = []
for result_set in result_sets:
master_set.extend(result_set)
return master_set
을, 현 작업은 celeryev에 표시했지만, 나는이 있었다 여기에서 참조 된 문제는 Django Celery - Missing something but I have no idea what? Have results but can't get them인데, Celery에 대한 내용은 MySQL을 통해 결과 추적과 관련된 오류를 반환합니다. 내 결과 백엔드에 실제로 MySQL을 사용하고 있었고 Redis로 전환하여 제거했습니다. 그러나 이제는 새로운 문제가 생겼습니다. 내가 장고 쉘을 통해 코드를 실행하면 아무 작업 celeryev에 나타납니다, 아무것도이 넘어 반환되지 않습니다 :
R IS: <GroupResult: 9f658e8d-591f-4fa9-9e79-4db0c51e8331 [9b199d1e-061f-413c-9521-4a3051dd121a, 2effbfb5-c9dc-4569-a63f-656c233a9387, 80911a60-6a22-46bb-83a1-d5a84c659794, 70acfa43-8ffe-4bc8-8ff1-1df6def035e1, dd417423-d1f6-44eb-8c4b-2ded40d7614f, fbff8adc-815d-459c-b914-b30528dbbd39]>
기본적으로 셀러리 메시지를하지만, 데이터가없는. 코드는 결코 반환되지 않으며 커서는 매달려 있습니다. 내가 control-C 명령을 내릴 때 줄 번호는 셀러 리에서 기다리고있는 것으로 보인다. 셀레 리브가 나에게 아무런 일도하지 않기 때문에 나는 무엇을 생각할 수 없다. 나는 다른 작업이 셀레 리브에서 나타나는지 확인했습니다.
셀러 리 작업으로 실행하지 않고도 정상적으로 내 기능을 테스트했으며 정상적으로 돌아 왔습니다.
짧은 버전 내가 셀러리 코드 내 장고 응용 프로그램에 집중 파이썬 작업에 도움을 얻으려고하지만, 그들이 어떤 결과를 반환 할 수 또는 celeryev에 입력하기 나타나지 않습니다. Redis 백엔드. 셀러리 버전 3.0.15. 장고 1.4.
헤더 작업에 대한 시간 제한을 설정하고 [오류 처리] (http://docs.celeryproject.org/en/latest/userguide/canvas.html#error-handling)를 정의 해 보았습니까? – guival