我有以下文件夹:
proj
├── __init__.py
├── celery.py
├── tasks.py
├── foo_launcher.py
首先,我必须启动芹菜工作者。
celery -A proj worker -l info
celery.py代码:
from __future__ import absolute_import, unicode_literals
from celery import Celery
app = Celery('project', broker='amqp://guest@localhost//', include=['project.tasks'])
if __name__ == '__main__':
app.start()
芹菜工人工作正常,但是当我要启动foo_launcher.py
时,由于foo_launcher.py
取决于tasks.py
,而tasks.py
取决于{{1 }}。这是问题所在。我需要导入celery.py文件而不是celery库。
所以,这是celery.py
tasks.py
此处from .celery import app #Here Import celery.py not celery library
@app.task
def add(x, y):
return x + y
foo_launcher.py
从表面上看,一切都有意义,但是当我尝试启动from tasks import add
result = add.apply_async((2,2), queue='lopri',coutdown=10)
print(result)
时:
foo_launcher.py
它向我启动以下错误:
python foo_launcher.py
我不知道该怎么办。有什么想法吗?
答案 0 :(得分:1)
celery.py
与celery
模块具有相同的名称。
最好更改celery.py
的文件名,例如mq.py
答案 1 :(得分:0)
确保您有 // icon after text
ElevatedButton.icon(
icon: Text('Icon Button'),
label: Icon(Icons.arrow_forward, size: 16),
onPressed: () => {},
),
文件。
然后从上面的一个目录中午餐 python.exe 并导入 tasks/foo_luncher.py -
__init__.py
cd ..
python
>> import projectdirectory.tasks
文件的目录。