Ограничить обработчик сообщений несколькими шинами с symfony messenger - PullRequest
0 голосов
/ 08 января 2020

Как объяснено в документации компонента Symfony мессенджера , обработчики сообщений по умолчанию обрабатывают сообщения со всех шин сообщений. Однако можно ограничить обработчик сообщений указанной c шиной, например:

# 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

Теперь для проекта, над которым я работаю, у меня есть три шины, и я хотел бы, чтобы обработчик обрабатывал только сообщения на двух из этих автобусов.

Кто-нибудь знает, как этого добиться?

1 Ответ

1 голос
/ 13 января 2020

Это просто дикое предположение, но поскольку теги - это массив, вы можете попробовать добавить несколько тегов?

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