Skip to main content
 首页 » 编程设计

python之Celery Django之自定义任务发现

2024年10月24日32artech

我不想将 celery 任务放在 tasks.py 中,而是将它们放在几个不同的文件中。

有没有办法告诉 Celery 在这些文件中查找任务?还是 tasks.py 在某处进行了硬编码?

如果有帮助,这是我的版本:

Django==1.8.7 
celery==3.1.19 
kombu==3.0.26 
django-celery==3.1.17 

请您参考如下方法:

根据celery docs ,因为 celery 3.1 版不再需要 django-celery 应用程序,因为 django 支持已经集成到 celery 本身中。

根据 tutorial ,只需要在项目的 __init__.py

中导入一个导入的 app 对象( celery.Celery 的实例)

app.autodiscover_tasks接受两个参数,

  • packages,可以很容易地成为 lambda: settings.INSTALLED_APPS
  • related_name,默认为tasks,但可以覆盖