3
我在學習芹菜,我創建了一個項目來測試我的配置。根據最新文檔,我安裝了celery==4.0.0
和django-celery-beat==1.0.1
。芹菜定期任務不執行
在drf_project(主項目目錄與manage.py)/drf_project/celery.py
from __future__ import absolute_import, unicode_literals
from celery import Celery
import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'drf_project.settings')
app = Celery('drf_project')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()
在drf_project/drf_project/settings.py
INSTALLED_APPS += ('django_celery_beat',)
CELERYBEAT_SCHEDULE = {
"test_1": {
"task": "tasks.print_test",
"schedule": timedelta(seconds=2),
},
}
在drf_project/drf_project/初始化 .py
from __future__ import absolute_import, unicode_literals
from .celery import app as celery_app
__all__ = ['celery_app']
在我的user_manageme NT的應用程序(drf_project/user_mangement /)我加了一個tasks.py
from celery import Celery
from time import strftime
app = Celery()
@app.task
def print_test():
print strftime('%Y-%m-%d %H:%M:%S')
with open('abc.txt', 'ab+') as test_file:
test_file.writeline(strftime('%Y-%m-%d %H:%M:%S'))
當我運行芹菜工作人員,並通過在不同的終端我的Django項目開發服務器:
celery -A drf_project worker -l info
和
python manage.py runserver
我可以看到我的任務芹菜日誌,如:
[tasks]
. user_management.tasks.print_test
但它沒有執行。此外,我沒有得到任何錯誤。所以我做錯了什麼?我跟着芹菜的官方文檔。
我用'芹菜-A drf_project beat'開始節拍服務。但仍然沒有執行任務,我無法在django服務器和芹菜的任何地方看到某種日誌。 –
花了我幾天的時間才知道。節拍只是在他們到期時發送任務。那些任務在那裏排隊。所以,你必須至少啓動一名工作人員,以便這些任務被挑選並執行! –
@DatTT感謝您的提示。 –