J0h*_*4lt 5 django celery pycharm
如何从项目级别调用 celery(应用程序)任务,反之亦然。
我有一个 Django 目录结构,如下所示:
- proj
|_ celery.py
|_ settings.py
- app
|_ tasks.py
|_ views.py
Run Code Online (Sandbox Code Playgroud)
在 settings.py 中,我有一个 CELERYBEAT_SCHEDULE var,它引用app/tasks. 该任务未在 中列出celery inspect registered。
自从在 中定义以来在注册表中列出的任务也不能proj/celery.py由 中的函数调用apps/views.py。
我已按照芹菜网站上的说明进行操作。
Shared_task 装饰器中的函数必须在应用程序 AppConfig 中列出。
在app/apps.py导入您的任务时,如下所示:
from .tasks import add
Run Code Online (Sandbox Code Playgroud)
在app/tasks.py导入共享任务中,如下所示:
from proj.celery import shared_task
Run Code Online (Sandbox Code Playgroud)
在proj/celery.py导入共享任务中,如下所示:
import celery
from celery import shared_task
Run Code Online (Sandbox Code Playgroud)
Pycharm 会抱怨未使用的导入,无论它们如何使用,只是不在 pycharm 正在解析的文件中。
现在,当我开始芹菜工人时:
python manage.py celeryd --loglevel=DEBUG &
Run Code Online (Sandbox Code Playgroud)
而不是
celery -A pears worker --loglevel=info &
Run Code Online (Sandbox Code Playgroud)
我的任务app/tasks.py已注册且可调用。
| 归档时间: |
|
| 查看次数: |
8976 次 |
| 最近记录: |