Как использовать сообщения из Cloud Pub/Sub с помощью компонента Messenger адаптера Symfony и Enqueue?
Инструменты, которые я использую:
- Symfony 4.1.6
- Компонент Symfony Messenger 4.1.6
- Поставить в очередь адаптер 0.1.2
- Поставить в очередь Google Cloud Pub/Sub Transport 0.8.37
Мои конфигурационные файлы:
#service.yaml
framework:
messenger:
transports:
default: 'amqp://guest:guest@localhost:5672/%2f/messages'
enqueue: 'enqueue://gps'
default_bus: messenger.bus.commands
buses:
messenger.bus.commands: ~
messenger.bus.events: ~
routing:
# Route your messages to the transports
'App\Message\Command\Store\CreateStore': enqueue
,
#enqueue.yaml
enqueue:
transport:
default: 'gps'
gps:
projectId: '%env(GOOGLE_PROJECT_ID)%'
keyFilePath: '%env(GOOGLE_APPLICATION_CREDENTIALS)%'
Отправка сообщения / команды в Cloud Pub/Sub queue OK
Мое сообщение / команда CreateStore
правильно отправить в Cloud Pub/Sub следующим образом:
use App\Message\Command\Store\CreateStore;
use Enqueue\MessengerAdapter\EnvelopeItem\TransportConfiguration;
$command = new CreateStore();
$this->commandBus->dispatch((new Envelope($command))->with(new
TransportConfiguration(
['topic' => 'enqueue.commands']
)));
Все сообщения / команды находятся в моей Cloud Pub/Sub Queue, я могу просмотреть их и подтвердить их вручную с помощью инструмента командной строки gcloud, например:
gcloud pubsub subscriptions pull enqueue.commands
gcloud pubsub subscriptions pull enqueue.commands --auto-ack
Использование сообщений из облачного паба / подпоследовательности KO
Теперь я пытаюсь использовать мое сообщение, выполнив:
bin/console messenger:consume-messages enqueue
Потребитель бежит, но ничего не происходит.
Чего мне не хватает, чтобы использовать мои сообщения, доступные в Cloud Pub/Sub?