使用symfony messenger将消息处理程序限制为多条总线

使用symfony messenger将消息处理程序限制为多条总线,symfony,symfony-messenger,Symfony,Symfony Messenger,如中所述,默认情况下,消息处理程序处理来自所有消息总线的消息。但是,可以将消息处理程序限制为以下特定总线: # config/services.yaml services: App\MessageHandler\SomeCommandHandler: tags: [{ name: messenger.message_handler, bus: command.bus }] # prevent handlers from being registered t

如中所述,默认情况下,消息处理程序处理来自所有消息总线的消息。但是,可以将消息处理程序限制为以下特定总线:

# config/services.yaml
services:
    App\MessageHandler\SomeCommandHandler:
        tags: [{ name: messenger.message_handler, bus: command.bus }]
        # prevent handlers from being registered twice (or you can remove
        # the MessageHandlerInterface that autoconfigure uses to find handlers)
        autoconfigure: false
现在,对于我正在进行的一个项目,我有三条总线,我希望处理程序只处理其中两条总线上的消息


有人知道实现这一点的方法吗?

这只是一个猜测,但由于标记是一个数组,您能否尝试添加多个标记

# config/services.yaml
services:
    App\MessageHandler\SomeCommandHandler:
        tags: 
            - { name: messenger.message_handler, bus: command.bus }
            - { name: messenger.message_handler, bus: command.bus_2 }

这很有效,谢谢!我有点困惑,因为有两个标签同名,但这似乎不是问题。