我对如何从一个django应用程序中仅注册任务子集感到困惑。 例如,我们有2个具有任务集的应用程序,但我们需要从第二个应用程序注册1个应用程序和任务子集。我怎样才能做到这一点?
或者这可以用另一种方式解释。例如,我们有两个不同的项目,它们使用可重用的应用程序和一些任务。我们需要在第一个项目中导入部分任务,在第二个项目中导入另一部分任务。我们怎样才能做到这一点?
现在我有 celery.autodiscover 但这也导入了我不需要的任务。感谢。
答案 0 :(得分:0)
执行这样的配置,
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