2012-01-03 152 views
10

奇怪的問題在這裏。我一直在開發一個Django應用程序,現在我正試圖實現Celery。我需要正常任務和週期性任務排隊。我可以很好地啓動celeryd,並使用它執行任務(我從命令python manage.py celeryd start --settings=settings --loglevel=INFO開始)。芹菜+ Django:無法在Windows 7上啓動celerybeat

在Windows上,您不能執行-beat/-b以啓用節拍模式;您需要啓動celerybeat作爲一項單獨的服務(這在Celery文檔的常見問題部分有說明)。如果我鍵入命令行本 - python manage.py celerybeat -s djcelery.schedulers.DatabaseScheduler --settings=settings --loglevel=INFO - 我得到一個錯誤這樣的:

[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文件並將其刪除。在unix機器上通常意味着程序沒有正確關閉。你應該檢查它是否已經在任務管理器中運行,如果是的話就殺了它,並刪除該文件。

然後再試一次。

如果沒有pid文件存在,那可能意味着軟件有問題,因爲它可能從unix移植過來?

+1

我手動停止了RabbitMQ服務,找到並刪除了'celerybeat.pid',然後啓動了RabbitMQ備份 - 並且它現在可以工作。非常感謝,我不知道爲什麼我自己沒有嘗試過......我想我只是太膽小。 對於任何想要避免這種不便的人 - 確保在關閉命令提示符前始終鍵盤中斷celeryd和celerybeat! – hangtwenty 2012-01-03 01:59:23

3

在我的Windows上的django項目的情況下,這個文件已經存在於Django項目的根目錄中。我刪除了該文件,並且該進程沒有任何錯誤地運行。 enter image description here

「celerybeat.pid」已經存在,因爲我從另一臺PC上運行了芹菜拍,並將git倉庫推到了雲端。當我在我的工作PC上拉回購軟件並運行該過程時,它給了我錯誤,指向另一臺PC早期創建的文件「celerybeat.pid」。刪除「celerybeat.pid」使它工作。