我想知道Celery的autodiscover_tasks
函数的作用是什么。我正在将Celery 4.1.2与Django 2.1.4结合使用。
芹菜文档涉及进口:
foo.tasks
和bar.tasks
被导入
但是我无法理解它是如何工作的。
我在GitHub including this one from the Official Celery repo上找到的所有示例都依赖于手动导入(即from demoapp.tasks import add, mul, xsum
)任务,即使在启动worker时调用autodiscover_tasks
函数也是如此。
我想这就是Python的工作方式,例如,您不能像Ruby中那样“全局”访问类。
然后再次说明此功能是做什么的?我不是Celery的专家,也许我错过了一些东西。我唯一看到的是启动Celery worker时发现的任务的名称,这是应该执行的所有功能吗?
感谢您的投入,
答案 0 :(得分:0)
将celery与django一起使用时,autodiscover_tasks
函数在每个INSTALLED_APPS
条目内的任务模块中注册所有修饰的任务。例如,
如果您的INSTALLED_APPS
设置包括app1,app2和app3,那么celery会自动注册可以通过查看app1.tasks
,app2.tasks
和{{1}进行罚款的装饰任务。 }。