【问题标题】:Django and Celery tasksDjango 和 Celery 任务
【发布时间】:2017-04-04 15:44:54
【问题描述】:

所以在我们的 Django 项目中,我们使用了 Celery 和 Django-Celery 模块。最初编写任务部分的人是这样写的:

from djcelery import celery

@celery.task
def do_something():
    ...

但是在文档中到处都显示我们应该创建一个单独的 celery.py 文件并像这样导入应用程序:

芹菜.py

from celery import Celery

app = Celery('project')
if __name__=='__main__':
    app.run()

tasks.py

from celery import app # Importing `app` from our celery.py

@app.task
def do_something():
    ...

所以我想知道这样做是否有问题?我们正在使用 django-celery 3.1 版

【问题讨论】:

    标签: python django celery django-celery


    【解决方案1】:

    start with celery documentation的首页

    以前版本的 Celery 需要一个单独的库才能工作 使用 Django,但从 3.1 开始,情况不再如此。姜戈是 现在支持开箱即用,因此本文档仅包含一个基本的 集成 Celery 和 Django 的方法。您将使用与 非 Django 用户,因此建议您阅读 First Steps with 首先是 Celery 教程,然后回到本教程。当你有一个 工作示例,您可以继续阅读后续步骤指南。

    也是 django-celery 状态的自述文件的第一行

    老 django celery 集成项目。

    总结如下,django-celery 是您的应用使用的旧方法,新文档遵循处理 celery 的新方法

    【讨论】:

    • 谢谢。我读了那段,但我不明白它指的是 django-celery 库。
    • 这意味着你不需要 django-celery 库,你可以直接将 celery 与 django 集成,你可以在这里阅读关于 celery 和第一步:docs.celeryproject.org/en/latest/getting-started/…