2016-10-17 121 views
-1

我正在使用芹菜的django项目。我在名为app1和app2的项目中有三个两个大模块。我为两台独立的机器上运行的应用程序创建了两个芹菜应用程序。在app1和app2中有不同的任务,我想运行差异机器,它工作正常。但我的问题是我有一些periodic_tasks。我为他们定义了一个名为periodic_tasks的队列。我想在单独的第三台机器上运行这些定期任务。或者在第三台机器上,我只想运行周期性任务,而这些周期性任务不应该从其他两台机器上执行。是否有可能使用芹菜。仅在一台机器上运行芹菜周期性任务

+0

如果您已设法配置celery,以便app1任务始终运行在与app2任务不同的计算机上,为什么不能对周期性任务执行相同操作?应该没有任何区别。 –

+0

周期性任务不在不同的应用程序中,如果这些任务与app1有关,那么这些任务都在app1左右。 –

回答

0

在您的第三台机器上,请确保使用-Q--queues选件启动芹菜periodic_tasks。在app1和app2上,启动没有periodic_tasks队列的芹菜。您可以在这里阅读有关队列处理的更多信息:http://docs.celeryproject.org/en/latest/reference/celery.bin.worker.html#cmdoption-celery-worker-Q

+0

是的,我正在尝试使用'celery -A proj -Q periodic_tasks',但是当我看到'芹菜inspect注册'时,它会显示我完整项目中所有任务的列表。 –

+0

嗯,是的,因为所有的工人都有一个共同的经纪人,即使他们不处理所有的任务。 – 2ps

相关问题