Django 设置简单任务的困难
我正试图用Django 设置简单任务的困难,django,python-3.x,celery,django-1.9,Django,Python 3.x,Celery,Django 1.9,我正试图用django和芹菜设置一个简单的任务(每5秒打印一次“foo”) 假设我有以下项目: . ├── manage.py └── proj ├── __init__.py ├── settings.py ├── tasks.py ├── urls.py └── wsgi.py 使用tasks.py: from celery import Celery import os os.environ.setdefault('DJANGO_SETTINGS
django
和芹菜
设置一个简单的任务(每5秒打印一次“foo”
)
假设我有以下项目:
.
├── manage.py
└── proj
├── __init__.py
├── settings.py
├── tasks.py
├── urls.py
└── wsgi.py
使用tasks.py
:
from celery import Celery
import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'proj.settings')
from django.conf import settings
app = Celery('tasks', broker='django://127.0.0.1:8000//')
app.config_from_object('django.conf:settings')
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
@app.task
def test():
print("FOO")
和settings.py:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'celery',
'kombu.transport.django',
]
[...]
# Celery :
CELERYBEAT_SCHEDULE = {
'test-celery': {
'task' : 'proj.tasks.test',
'schedule' : timedelta(seconds=5)
},
}
CELERY_TIMEZONE = 'Europe/Paris'
和proj/\uuuu init\uuuu.py
:
from .tasks import app as celery_app
我迁移并启动芹菜-一个proj.tasks worker--loglevel=info并且芹菜启动了,我只有两个关于pickle使用这个版本(3.1.23)的警告和关于设置的警告。调试是True
。但芹菜似乎很管用。我还使用manage.py
启动我的开发服务器
那么为什么我的任务(test()
)没有运行呢?你需要运行芹菜节拍。例如:
芹菜-项目工人-l信息-B
您需要运行芹菜节拍。例如:
芹菜-项目工人-l信息-B
就是这样!谢谢。:)就这样!谢谢。:)