我真的很努力在Windows 7上使用Celery Beat設置定期任務(不幸的是,我現在正在處理這個問題)。將使用芹菜的應用程序是用CherryPy編寫的,所以Django庫在這裏不相關。我正在尋找的是一個如何在後臺啓動Celery Beat流程的簡單示例。常見問題解答部分說了這樣的,但我一直沒能真正做到這一點尚未:芹菜擊敗Windows簡單示例(不與Django)
的Windows
的-B/-beat選項工人不工作¶
?答:那就對了。改爲將芹菜拍和芹菜工作者作爲單獨的服務。
我的項目佈局如下:
proj/
__init__.py (empty)
celery.py
celery_schedule.py
celery_settings.py (these work
tasks.py
celery.py:
from __future__ import absolute_import
from celery import Celery
from proj import celery_settings
from proj import celery_schedule
app = Celery(
'proj',
broker=celery_settings.BROKER_URL,
backend=celery_settings.CELERY_RESULT_BACKEND,
include=['proj.tasks']
)
# Optional configuration, see the application user guide.
app.conf.update(
CELERY_TASK_RESULT_EXPIRES=3600,
CELERYBEAT_SCHEDULE=celery_schedule.CELERYBEAT_SCHEDULE
)
if __name__ == '__main__':
app.start()
tasks.py
from __future__ import absolute_import
from proj.celery import app
@app.task
def add(x, y):
return x + y
celery_schedule.py
from datetime import timedelta
CELERYBEAT_SCHEDULE = {
'add-every-30-seconds': {
'task': 'tasks.add',
'schedule': timedelta(seconds=3),
'args': (16, 16)
},
}
從命令行(從「proj」的父目錄)運行「celery worker --app = proj -l info」啓動worker線程就好了,我可以從Python終端執行添加任務。但是,我無法弄清楚如何啓動節拍服務。很明顯,語法可能不正確,因爲我沒有通過缺少--beat選項。
您是否嘗試過運行類似「芹菜拍-app = PROJ」? – xbb