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

Restrict message handler to multiple buses with symfony messenger

documentation of the Symfony messenger component 中所述,默认情况下,消息处理程序处理来自所有消息总线的消息。但是,可以像这样将消息处理程序限制为特定总线:

# 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 }