問題タブ [php-amqplib]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
397 参照

php - RabbitMQ PHP: キューから受信し、応答を別のキューに送信する

時間のかかる操作を行うために、RabbitMQ と PHP-AMQP を使用しています。

タスクをキューに送信するプロデューサーがあります->そのキューをリッスンし、時間のかかる操作を行う1つまたは複数のワーカー->ワーカーが完了したときに変数をインクリメントするレシーバー。

ワーカーとレシーバー間の交換を使用しました。問題は、プロデューサーがログを発行するときに、レシーバーもその変数をインクリメントすることです...

ここに写真があります: ダイアグラム

この 2 つのキューを単純に分離して、レシーバーがワーカー (コンシューマー) からのメッセージのみを認識できるようにするにはどうすればよいですか?

0 投票する
1 に答える
1121 参照

docker - Symfony で RabbitMQ コンシューマを実行中に「データの読み取り中にエラーが発生しました」

OldSoundRabbitMqBundleを使用して RabbitMQ コンシューマーを実行する Symfony 3.1.x プロジェクトを含む RabbitMQ コンテナーと PHP 7 コンテナーがあります。

testコンシューマーを実行するこのコマンドを実行すると、次のようになります。

次のエラーが表示されます。

[PhpAmqpLib\Exception\AMQPIOException]

データの読み取りエラー。予想される 7 バイトではなく 0 を受信しました

私のセットアップは非常に簡単で、次のことを確認しました。

  • RabbitMQ は最新バージョン (3.6.5) です
  • 構成されたhost、、、vhostパラメータuserpassword正しい
  • mbstring拡張機能が有効になっています

問題を再現するプロジェクトを設定するのは非常に簡単です。

サンプル プロジェクトはGitHubで入手できます。手順は README ファイルに記載されており、いくつかの手順で問題を再現できます。

ここにいくつかのハイライトがあります:

docker-compose.yml

config.yml

このサービスは、インターフェースをtest_consumer実装する非常に単純なクラスです。ConsumerInterface

誰かが私の問題について何か考えがありますか?

0 投票する
2 に答える
444 参照

php - キューがバインドされる前に送信された Exchange メッセージへのアクセス

3 つ目の RabbitMQ チュートリアルについて質問があります。プロデューサーが交換にメッセージを送信するときにコンシューマーが実行されているという保証がないことを除いて、私は似たようなものを実装しようとしています。

したがって、メッセージをファンアウト交換に発行するプロデューサーがあります。

パブリッシャーでキューを宣言し、それをエクスチェンジにバインドします。

そして、これが私の問題の根源です。チュートリアルには次のように書かれています。

キューがまだエクスチェンジにバインドされていない場合、メッセージは失われますが、それは問題ありません。コンシューマーがまだリッスンしていない場合は、メッセージを安全に破棄できます。

これらのメッセージをどうにかして保存する方法はありますか? コンシューマーが起動すると、以前に送信されたメッセージにアクセスしますか? その方法を見つけた唯一の方法は、プロデューサーとパブリッシャーで同じキューを宣言することですが、交換と異なるコンシューマー用の個別のキューを持つという目的を無効にします。

0 投票する
0 に答える
181 参照

wso2 - PHP クライアントで wso2mb メッセージ ブローカー サーバーを使用する

wso2mb (wso2 メッセージ ブローカー バージョン 3.1.0) に基づいて、php クライアント ( php-amqplib libを使用) をサーバーに接続しようとしています。

amqp_consumer.php を使用し、常にこのエラーでロックされている場合、私は成功できませんでした:

情報 {org.wso2.andes.server.protocol.AMQProtocolEngine} - 処理中に SASL サーバーを作成できません: AMQPLAIN:[ConnectionStartOkBodyImpl: clientProperties={product=[LONG_STRING: AMQPLib]、プラットフォーム=[LONG_STRING: PHP]、バージョン=[ LONG_STRING: 2.6]、information=[LONG_STRING:]、copyright=[LONG_STRING:]、capabilities=[FIELD_TABLE: {authentication_failure_close=[BOOLEAN: true]、publisher_confirms=[BOOLEAN: true]、consumer_cancel_notify=[BOOLEAN: true]、exchange_exchange_bindings =[BOOLEAN: true]、basic.nack=[BOOLEAN: true]、connection.blocked=[BOOLEAN: true]}]}、メカニズム=AMQPLAIN、response=[5, 76, 79, 71, 73, 78, 83 、0、0、0、5、97、100、109、105、110、8、80、65、83、83、87、79、82、68、83、0、0、0、5、97、100 、109、105、110]、locale=en_US] [2016-11-04 08:05:26,901] INFO {org.wso2.andes.server.protocol.AMQProtocolEngine} - 次の理由により接続を閉じています: org.wso2.andes.AMQConnectionException: SASL サーバーを作成できません: AMQPLAIN [エラー コード 506: リソース エラー]

confing.php で thos params を conexions params として使用しています

私の質問: 1. いくつかの php コードと wso2mb の間の通信を確立するために、任意の php ライブラリ/チュートリアルをお勧めできますか? 2. wso2mb で許可されている接続方法は何ですか? (プレーン、AMQプレーン...?) 3. 助けてください:)