pyp*_*ism 1 python django celery
我试图跟随芹菜doc为django.这是我的项目结构:
??? hiren
? ??? celery_app.py
? ??? __init__.py
? ??? settings.py
? ??? urls.py
? ??? wsgi.py
??? manage.py
??? reminder
? ??? admin.py
? ??? __init__.py
? ??? migrations
? ??? models.py
? ??? serializers.py
? |?? task.py
? |?? tests.py
? |?? views.py
Run Code Online (Sandbox Code Playgroud)
这是我的settings.py文件:
BROKER_URL = 'redis://localhost:6379/4'
CELERYBEAT_SCHEDULE = {
'run-every-5-seconds': {
'task': 'reminder.task.run',
'schedule': timedelta(seconds=5),
'args': (16, 16)
},
}
Run Code Online (Sandbox Code Playgroud)
和reminder/task.py文件:
def run():
print('hello')
Run Code Online (Sandbox Code Playgroud)
当我运行celery -A hiren beat -l debug命令时,我没有在终端中看到"hello"文本.我错过了什么?
要从任何可调用的任务创建任务,您需要使用task()装饰器.这将创建一个芹菜任务run().
提醒/ task.py:
from celery import Celery
app = Celery('tasks', broker='redis://localhost')
@app.task
def run():
print('hello')
Run Code Online (Sandbox Code Playgroud)
Celery库必须在使用前进行实例化,此实例称为应用程序(或app简称).
如果您使用基于"旧"模块的celery API,那么您可以像这样导入任务装饰器:
from celery import task
@task
def run():
print('hello')
Run Code Online (Sandbox Code Playgroud)
即使这会像第一种方法一样创建芹菜任务,但不建议这样做.
| 归档时间: |
|
| 查看次数: |
2006 次 |
| 最近记录: |