2011-01-12 7 views
0

셀러리를 시작하고 이미 시작된 celeryd 프로세스에 모듈을 추가 할 수 있는지 알고 싶습니다. 대신 전에기존 셀러리 작업 프로세스에 기능을 동적으로 추가 하시겠습니까?

CELERY_IMPORTS = ("tasks", "additional_module") 

가 근로자를 시작 같이 celeryconfig.py를 통해 모듈을 추가하는 즉, 나는 작업자 프로세스가 시작 나중에 어떻게 든 후 additional_module 사용할 수 있도록합니다.

미리 감사드립니다.

답변

1

celeryd를 확장 된 가져 오기 목록으로 시작하고 최종적으로 (현재 작업이 완료된 후) 오래된 작업자를 정상적으로 종료하여 목표를 달성 할 수 있습니다.

셀프가 작업을 마친 후에 작업을 푸시하고 마킹 만 표시하는 비동기 특성으로 인해 실제로 이런 식으로 작업하는 것을 놓치지 않습니다. 동일한 머신에서 셀러리 작업자를 실행할 수 있어야합니다. RabbitMQ (또는 사용하는 대기열 백엔드)에 대한 새 연결로 표시됩니다.

+0

클라이언트에서 새 샐러리 작업자를 시작하려면 어떻게해야합니까? 제 생각 엔 당신이 클라이언트 내부에서 작업자를 차단할 수 있다고 생각하지만 어떻게 시작합니까? – reckoner

+1

내가 의미하는 바를 명확하게 밝히지 않았습니다. 새 셀러리 데몬 (즉,'celeryd')을 시작해야한다고 말 했어야합니다. 내 글을 업데이트했습니다. – rlotun

+0

이 조언은 2014 년 8 월에 작성하거나 더 나은 방법을 모색하면서 여전히 관련이 있습니다. 나이를 들여 (따라서 수많은 컴퓨터에서 셀레 리를 사용하는) 수치 최적화를 위해 노력하고있는 많은 사용자 정의 함수가 있으므로 정기적으로 모든 함수에 새로운 함수를 보내고 가능한 다양한 최적화 함수의 범위를 늘리고 싶습니다. 즉시 각 근로자에게. 비행 중에 모듈 리로드에 대해 읽었습니다. 그러나 이것은 조금 어색한 것처럼 보입니까? 주기적으로 새로운 기능을 전달할 수 있습니까? 예를 들어 모든 직원이 모든 기능을 사용할 수 있도록 보장 할 수 있습니까? –

관련 문제