celery task_routes为什么不是定义echange?

发布于 2022-09-11 19:54:18 字数 749 浏览 13 评论 0

我是用的是celery4.3.0,根据官方文档,

from kombu import Exchange, Queue

app.conf.task_queues = (
    Queue('default', Exchange('default'), routing_key='default'),
    Queue('videos',  Exchange('media'),   routing_key='media.video'),
    Queue('images',  Exchange('media'),   routing_key='media.image'),
)
app.conf.task_default_queue = 'default'
app.conf.task_default_exchange_type = 'direct'
app.conf.task_default_routing_key = 'default'

按我的理解,上面是将queues与exchange绑定。下面是为任务指定路由,根据amqp协议,下面不是应该指定exchange吗?为什么是指定queue,既然直接指定了queue,那还要exchange干什么?

task_routes = {
    'myapp.tasks.compress_video': {
        'queue': 'video',    ***#这里为什么要指定queue?***
        'routing_key': 'video.compress',
    },
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

ゝ偶尔ゞ 2022-09-18 19:54:18

您好,我也有同样的疑问,请问您最后找到答案了吗?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文