2012-01-03 3 views
10

이상한 문제가 있습니다. 장고 응용 프로그램을 개발 중이며 이제 셀러리를 구현하려고합니다. 나는 일반적인 작업과 정기적 인 작업이 모두 대기해야합니다. 나는 Celeryd를 시작하여 그걸로 작업을 실행할 수 있습니다. (명령을 사용하여 시작합니다. python manage.py celeryd start --settings=settings --loglevel=INFO).Celery + Django : Windows 7에서 celerybeat를 시작할 수 없습니다.

Windows에서 비트 모드를 사용하려면 -beat/-b을 사용할 수 없습니다. Celerybeat를 별도의 서비스로 시작해야합니다 (셀러리 문서의 FAQ 섹션에 명시되어 있습니다). python manage.py celerybeat -s djcelery.schedulers.DatabaseScheduler --settings=settings --loglevel=INFO - - I 명령 줄에이를 입력하면 나는 오류 다음과 같이 얻을 :

[2012-01-02 19:06:52,009: WARNING/MainProcess] ERROR: Pidfile (celerybeat.pid) a 
lready exists. 
Seems we're already running? (PID: 2364) 
[2012-01-02 19:06:52,012: INFO/MainProcess] process shutting down 

및 celerybeat 실제로 시작되지 않습니다. 그래서 나는 어떤 주기적 과제도 실행할 수 없다 ... 어떤 생각? 난 단지 one other page 누군가가 비슷한 오류를 강조 발견했지만 솔루션이 제공되지 않았습니다.

추가 정보가 필요하면 알려 주시기 바랍니다. 나는이 주제에 관한 어떤 정보도 찾을 수 없기 때문에 당혹 스럽다. 그리고 나는 오늘 하루 종일이 문제를 해결하려고 노력 해왔다. 고마워.

답변

13

파일 시스템에서 해당 pid 파일을 검색하고 삭제하십시오. 일반적으로 프로그램이 올바르게 종료되지 않았 음을 의미하는 유닉스 컴퓨터에서. 이미 작업 관리자에서 실행 중인지 확인한 다음 죽여야하는지 확인해야합니다.

그런 다음 다시 시도하십시오.

pid 파일이 없다면 아마 아마도 유닉스에서 이식 된 것처럼 소프트웨어에 문제가 있다는 뜻입니까?

+1

수동으로 RabbitMQ 서비스를 중지하고'celerybeat.pid'를 찾아 삭제 한 다음 RabbitMQ 백업을 시작했습니다. 이제 작동합니다. 고마워, 왜 내가 나 자신을 시험해 보지 않았는지 모르겠다. 나는 단지 너무 냉담했다. 그리고 이런 불편 함을 피하고 싶은 분은 명령 프롬프트를 닫기 전에 항상 키보드 인터럽트 celeryd 및 celerybeat를 확인하십시오! – hangtwenty

3

내 Windows 용 django 프로젝트의 경우이 파일은 Django 프로젝트의 루트에 이미 존재합니다. 해당 파일을 삭제하고 프로세스가 오류없이 실행되었습니다. enter image description here

"셀리 비트 .pid"는 이미 다른 PC에서 셀리 비트를 실행하여 클라우드에 밀어 넣었 기 때문에 이미 존재합니다. 내가 작업중인 PC에서 repo를 가져 와서 프로세스를 실행하면 이전에 다른 PC에서 생성 한 "celerybeat.pid"파일을 참조하는 데 오류가 발생했습니다. "celerybeat.pid"를 삭제하면 제대로 작동합니다.

관련 문제