django - celery 导入错误 : No module named tasks

标签 django celery

我正在为 Celery/RabbitMQ/Django 创建一个测试场景。在浏览/阅读了与我类似的各种帖子后,我找到了最接近的这个,但仍然对我没有帮助。执行 celery worker 时出现“ImportError: no module named tasks”错误。

celery :3.1.5(不是 dj-celery)
Django :1.5.5

项目结构:

testcele/ (project name)
  mycelery/ (myapp)
    __init__
    tasks

  testcele/
    __init__
    celery_task
    settings

testcele/testcele/celery_task:
  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)

testcele/testcele/初始化 .py:
  from __future__ import absolute_import
  from .celery_task import app as celery_app

mycelery/tasks.py:
  from __future__ import absolute_import
  from celery import Celery, task, current_task, shared_task


  @shared_task()
  def create_models():
    .
    .
    .

我正在运行:“celery worker -A testcele -l INFO”,位于“testcele/”子目录。我还尝试从 testcele/testcel 子目录,从 testcele/mycelery 运行,将 celery worker 命令上的“testcele”替换为“tasks”或“mycelery”。显然,这会产生其他错误。

我错过了什么?

谢谢,里卡多

最佳答案

尝试添加 __init__.py文件在您的mycelery文件夹使其成为一个模块。如果这不起作用,请在定义 app 时指定任务。 .像这样:

app = Celery('testcele', backend='amqp', broker='amqp://guest@localhost//',
                include=['mycelery.tasks'])

关于django - celery 导入错误 : No module named tasks,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20484957/

相关文章:

python - celery 异步获取超时永不超时

python - celery 重复任务不执行

python - 在 AWS 上管理工作人员

python - AWS Elastic Beanstalk Django - 部署到 EB 时首先发生什么,pip install -r requirements.txt 或配置文件中的命令

javascript - django delete() 成功函数错误

使用 celery 和 websocket 在 Azure 应用程序服务上部署 Python Django 应用程序

python - 将 Celery 任务从 Redis 迁移到 RabbitMQ

使用 get_queryset 的 Django ListView 分页

python - 如何在 models.ForeignKey 字段上添加绿色加号按钮?

Django 身份验证后端