在celery中导入共享任务

2024-10-03 23:26:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试在我的django项目中使用共享的\u任务。但我不能进口。我正在使用Celery 4.1.0(latentcall)

我将把共享任务放在一个库中(现在它们在一个文件夹中,但会创建一个whl)我在搜索文档,在互联网上的例子,但我没有找到任何。在

在我的django项目中,我有:(查看下面的更新)

但当我创建任务时:

app.send_task('futurelibrary.tasks.taskfunction', [])

但任务的结果是:

^{pr2}$

我已经阅读了将导入放在设置django文件夹的__init__.py中。但我不能这么做。我将有不同的芹菜配置和不同的库任务。在

我将尝试不同的路径,以确定是否我使用了一个不正确的路径。如果我找到解决方案,我会更新的。在

更新:一定是我做错了什么,因为它没有发现任务。我将给你我的实际结构和我写的模块:

myproject
│
├──futurelibrary
│  └──tasks.py
│
├──djangoappmain
│  ├──urls.py
│  └──[...]
│
├──djangoapp2
│  ├──celery.py
│  └──apps.py
│
└──settings
   ├──celeryconfig.py
   └──workerconf.py

这些是每个文件夹中唯一的文件(但是djangoappmain有更多的文件)

当我给工人打电话时,我会:

celery worker --config=settings.workerconf

在djangoapp2/芹菜里我有:

from __future__ import absolute_import
from celery import Celery
from settings import celeryconfig

app = Celery('my_app')

app.config_from_object(celeryconfig)
# Write the module to import where task.py are
app.autodiscover_tasks(['futurelibrary'])

如果您还需要配置文件中的内容,只需告诉我并粘贴它们


Tags: 项目djangofrompyimport文件夹apptask