我需要一个django-芹菜守护进程来监听特定的rabbitmqchannel



事实上,我很少有django应用程序带有celeron任务。我需要每个任务都在特定的通道中执行,这样我就可以控制负载。例如,我可能有3个服务器监听channel_for_app_1,而有2个监听channel_for_app_2。我的问题是如何运行芹菜守护进程并指定通道?还有其他方法吗?

请查看此页面:http://docs.celeryproject.org/en/latest/userguide/routing.html.

您的芹菜应该从-Q,--queue设置开始,这些设置定义了哪个队列将用于提取任务

在django设置中,您可以指定CELERY_QUEUES:

CELERY_QUEUES = {
"worker": {
    "exchange": "worker",
    "binding_key": "worker" 
},

就像这样。每个密钥都是一个队列名称,如果你想改变交换和绑定密钥(多个交换等),但我从来没有需要。

当你定义一个任务时,你可以

@task(queue="worker", etc)

最后一步是在运行芹菜时指定队列名称-可以通过芹菜守护程序配置,也可以在运行它时在命令行上指定。所有这些操作的结果是,芹菜任务将进入任务定义指定的队列,并且只进入运行指定队列的框中。

所以我不确定当你说"通道"时,你的意思是否明显不同,但我总是使用多个每个任务的队列来做你所描述的事情。

相关内容

  • 没有找到相关文章

最新更新