2014-07-22 2 views
1

은 내가 터미널에 다음을 실행하여 작업자를 시작셀러리는 등록되지 않은 작업 KeyError를

KeyError: 'cel_test.grp_all_w_codes.mk_dct' #this is the name of the task 

이 문제는 cel_test.grp_all_w_codes.mk_dct이 존재하지 않는다는 것입니다. 실제로 모듈 cel_test.grp_all_w_codes도없고 mk_dct 작업은 없습니다. 며칠 전에 한 번 있었지만 이후 삭제했습니다. 나는 어쩌면 .pyc 파일이 떠 다니는 줄 알았다. 또한 오류가 발생하는 작업에 대한 코드에서 단일 참조를 찾을 수 없습니다. 내 컴퓨터를 종료하고 무언가에 대한 참조가 메모리에 갇혔다 고 생각하면 rabbitmq 서버가 다시 시작되었지만 도움이되지 않았습니다.

여기에 문제가 있거나 내가 무엇을 놓치고 있는지 알 수있는 사람이 있습니까?

답변

3

글쎄, 당신의 conf의 파일을 모른 채, 나는이을 자극 할 두 가지 이유를 볼 수 있습니다 : 당신이 노동자를 중단하고 모듈을 삭제할 때 mk_dct 작업이 완료되지 않은

  • . CELERY_ACKS_LATE으로 실행 중이면 작업자를 다시 실행할 때마다 작업을 다시 실행하려고 시도합니다. mk_dct 작업이 셀러리 비트에 의해 시작되어 purge option.

celery -A cel_test worker --loglevel=INFO --concurrency=10 -n worker1.%h --purge

  • 와 작업자를이 설정을 제거하거나 시작하려고합니다. 그렇다면 셀러리 비트를 다시 실행하고 데이터베이스 백엔드가 사용자 정의 된 경우이를 지우십시오.

문제가 해결되지 않으면 셀러리 conf를 게시하고 프로젝트의 .pyc을 모두 지우고 모든 작업을 다시 시작했는지 확인하십시오.

+0

나는 별도의 터미널 창에서'셀러리 제거 '를 실행하고있었습니다. '--purge' 옵션으로 작업자를 실행 한 후 내 문제가 사라진 것 같습니다. –

관련 문제