0

正如Symfony messenger 组件的文档中所解释的,默认情况下,消息处理程序处理来自所有消息总线的消息。但是,可以将消息处理程序限制为特定总线,如下所示:

# 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

现在对于我正在处理的一个项目,我有三辆总线,我希望一个处理程序只处理其中两辆总线上的消息。

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

4

1 回答 1

1

这只是一个疯狂的猜测,但由于标签是一个数组,你可以尝试添加多个标签吗?

# config/services.yaml
services:
    App\MessageHandler\SomeCommandHandler:
        tags: 
            - { name: messenger.message_handler, bus: command.bus }
            - { name: messenger.message_handler, bus: command.bus_2 }
于 2020-01-13T15:01:51.283 回答