私が使用しているツール:
- シンフォニー4.1.6
- Symfony Messenger コンポーネント4.1.6
- エンキュー アダプタ0.1.2
- Google Cloud Pub/Sub トランスポートのエンキュー 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 キューへのメッセージ / コマンドの送信 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
Cloud Pub/Sub キュー KO からのメッセージの消費
今、次を実行してメッセージを消費しようとしています:
bin/console messenger:consume-messages enqueue
コンシューマーは実行されますが、何も起こりません。
Cloud Pub/Sub で利用可能なメッセージを使用するために何が不足していますか?