我想知道 Celery 的 autodiscover_tasks 函数的用途是什么。我正在使用 Celery 4.1.2 和 Django 2.1.4。
Celery 文档引用了导入:
foo.tasksandbar.tasksbeing imported
但我无法理解这是如何工作的。
我在 GitHub 上找到的所有示例 including this one from the Official Celery repo ,依赖于手动导入(即 from demoapp.tasks import add, mul, xsum)任务,即使在启动 worker 时调用 autodiscover_tasks 函数也是如此。
我想这就是 Python 的工作方式,您无法“全局”访问类,例如在 Ruby 中。
那么再一次,这个函数是做什么用的呢?我不是 Celery 的专家,也许我遗漏了什么。我唯一看到的是启动 Celery worker 时发现的任务的名称,所有这些功能都是应该做的吗?
感谢您的意见,
请您参考如下方法:
当将 celery 与 django 一起使用时,autodiscover_tasks 函数会在每个 INSTALLED_APPS 条目内的任务模块中注册所有装饰任务。例如,
如果您的 INSTALLED_APPS 设置包括 app1、app2 和 app3,celery 将自动注册任何可以通过查看 app1.tasks、 找到的修饰任务app2.tasks 和 app3.tasks。
