0
我正在頭痛的讓芹菜與我的文件夾結構一起工作。注意我使用的是virtualenv,但它應該沒關係。芹菜中未註冊的任務類型導入錯誤
cive/
celery_app.py
__init__.py
venv
framework/
tasks.py
__init__.py
civeAPI/
files tasks.py need
cive是我的根項目文件夾。
celery_app.py:
from __future__ import absolute_import
from celery import Celery
app = Celery('cive',
broker='amqp://',
backend='amqp://',
include=['cive.framework.tasks'])
# Optional configuration, see the application user guide.
app.conf.update(
CELERY_TASK_RESULT_EXPIRES=3600,
)
if __name__ == '__main__':
app.start()
tasks.py(簡體)
from __future__ import absolute_import
#import other things
#append syspaths
from cive.celery_app import app
@app.task(ignore_result=False)
def start(X):
# do things
def output(X):
# output files
def main():
for d in Ds:
m = []
m.append(start.delay(X))
output([n.get() for n in m])
if __name__ == '__main__':
sys.exit(main(sys.argv[1:]))
然後我通過(外根cive DIR)開始工人
celery -A cive worker --app=cive.celery_app:app -l info
這似乎工作罰款,加載工人和顯示
[tasks]
. cive.framework.tasks.start_sessions
但是當我嘗試通過其他終端來運行我的tasks.py:
python tasks.py
我得到的錯誤:
Traceback (most recent call last):
File "tasks.py", line 29, in <module>
from cive.celery_app import app
ImportError: No module named cive.celery_app
如果我進口重命名爲:
from celery_app import app #without the cive.celery_app
我最終可以啓動腳本,但芹菜返回錯誤:
Received unregistered task of type 'cive.start_sessions'
我認爲我的進口或配置有問題,但我不能說什麼。