我正在为Celery/RabbitMQ/Django创建一个测试场景.浏览/阅读类似我的各种帖子后,我发现这一个,最接近,但仍然没有帮助我.执行芹菜工作时,我遇到"ImportError:no module named tasks"错误.
芹菜:3.1.5(不是dj芹菜)Django:1.5.5
testcele/ (project name)
mycelery/ (myapp)
__init__
tasks
testcele/
__init__
celery_task
settings
Run Code Online (Sandbox Code Playgroud)
from __future__ import absolute_import
import os
from celery import Celery, task, current_task
from django.conf import settings
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'testcele.settings')
app = Celery('testcele', backend='amqp', broker='amqp://guest@localhost//',
include=['tasks'])
if __name__ == '__main__':
app.start()
# Using a string here means the worker will not have to
# pickle the object when using Windows.
app.config_from_object('django.conf:settings')
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
Run Code Online (Sandbox Code Playgroud)
from __future__ import absolute_import
from .celery_task import app as celery_app
Run Code Online (Sandbox Code Playgroud)
from __future__ import absolute_import
from celery import Celery, task, current_task, shared_task
@shared_task()
def create_models():
.
.
.
Run Code Online (Sandbox Code Playgroud)
我正在跑步:"芹菜工人-A testcele -l INFO",位于"testcele /"子目录.我也尝试从testcele/testcel子目录运行,从testcele/mycelery运行,用"tasks"或"mycelery"替换celery worker命令中的"testcele".显然,这会产生其他错误.
我错过了什么?
谢谢,里卡多
尝试__init__.py在mycelery文件夹中添加文件以使其成为模块.如果这不起作用,请在定义时指定任务app.像这样:
app = Celery('testcele', backend='amqp', broker='amqp://guest@localhost//',
include=['mycelery.tasks'])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13120 次 |
| 最近记录: |