OldSoundRabbitMqBundleを使用して RabbitMQ コンシューマーを実行する Symfony 3.1.x プロジェクトを含む RabbitMQ コンテナーと PHP 7 コンテナーがあります。
test
コンシューマーを実行するこのコマンドを実行すると、次のようになります。
bin/console rabbitmq:consumer -w test
次のエラーが表示されます。
[PhpAmqpLib\Exception\AMQPIOException]
データの読み取りエラー。予想される 7 バイトではなく 0 を受信しました
私のセットアップは非常に簡単で、次のことを確認しました。
- RabbitMQ は最新バージョン (3.6.5) です
- 構成された
host
、、、vhost
パラメータuser
がpassword
正しい mbstring
拡張機能が有効になっています
問題を再現するプロジェクトを設定するのは非常に簡単です。
サンプル プロジェクトはGitHubで入手できます。手順は README ファイルに記載されており、いくつかの手順で問題を再現できます。
ここにいくつかのハイライトがあります:
docker-compose.yml
version: '2'
services:
php:
build: ./docker/php/
links:
- rabbitmq
volumes:
- ./src:/var/www/rabbitmq-test
working_dir: /var/www/rabbitmq-test
rabbitmq:
image: rabbitmq:3.6-management
config.yml
old_sound_rabbit_mq:
connections:
default:
host: 'rabbitmq'
port: 5672
user: 'guest'
password: 'guest'
vhost: '/'
lazy: false
# ...
producers:
# ...
consumers:
test:
connection: default
exchange_options: {name: 'test', type: direct}
queue_options: {name: 'test'}
callback: test_consumer
このサービスは、インターフェースをtest_consumer
実装する非常に単純なクラスです。ConsumerInterface
誰かが私の問題について何か考えがありますか?