Django Celery从模块注册任务

时间:2017-03-30 12:28:35

标签: django celery django-celery

我对如何从一个django应用程序中仅注册任务子集感到困惑。 例如,我们有2个具有任务集的应用程序,但我们需要从第二个应用程序注册1个应用程序和任务子集。我怎样才能做到这一点?

或者这可以用另一种方式解释。例如,我们有两个不同的项目,它们使用可重用的应用程序和一些任务。我们需要在第一个项目中导入部分任务,在第二个项目中导入另一部分任务。我们怎样才能做到这一点?

现在我有 celery.autodiscover 但这也导入了我不需要的任务。感谢。

2 个答案:

答案 0 :(得分:0)

你的celery.py文件中的

执行这样的配置,

from django.conf import settings
app = Celery('redington')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks(settings.INSTALLED_APPS, related_name='tasks')

在你的所有应用程序中创建文件tasks.py文件并注册你的任务,这将占用每个应用程序的

答案 1 :(得分:0)

我还没有对它进行测试,但它应该可行

  

如果禁用autodiscover_tasks,则可以使用注册特定任务   app.register_task(your_task)

来自此问题https://github.com/celery/celery/issues/4112#issuecomment-313215784