我正在处理芹菜节拍任务,任务工作正常(在预定时间正常运行(,但我无法在我的管理页面中看到任务,并且所有与芹菜相关的表在我的 PostgreSQL 数据库中都是空的(例如 django_celery_beat_periodictask(
我在这里错过了什么??
要求
Django==1.9.7
python==3.5
celery==4.1.0
django-celery-beat==1.0.1
项目树
advocate
|
drive
|
-- celery.py
-- tasks.py
celery.py
from __future__ import absolute_import, unicode_literals
from celery import Celery
from celery.schedules import crontab
import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'advocate.settings')
# app = Celery('drive', broker='redis://localhost:6379/0')
app = Celery('drive', broker='redis://localhost:6379/0', include=['drive.tasks'])
app.control.purge()
app.config_from_object('django.conf:settings', namespace='CELERY')
# crontab for test
app.conf.beat_schedule = {
'Emails-Every-Mon_Wed_Fri': {
'task': 'drive.tasks.weekly_task',
'schedule': crontab(minute='*/5'),
},
}
app.conf.timezone = 'UTC'
# Optional configuration, see the application user guide.
app.conf.update(
result_expires=3600,
)
app.autodiscover_tasks()
if __name__ == '__main__':
app.start()
使用的运行命令
芹菜 -A 驱动器工人 -B --loglevel=debug -S django
您需要在 proj/proj/__init__.py 模块中导入应用程序。这确保了在 Django 启动时加载应用程序。
__init__.py
from __future__ import absolute_import, unicode_literals
from .celery import app as celery_app
__all__ = ['celery_app']
文档