使用 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 }
如 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 }