php amqpメッセージキュー RabbitMQ交換型直接接続(3)_PHPチュートリアル

WBOY
リリース: 2016-07-13 10:37:21
オリジナル
1425 人が閲覧しました

1. AMQP_EX_TYPE_DIRECT: 直接接続タイプ

直接接続タイプには、1 対 1 および 1 対 N (N 対 1、N 対 N) も含まれます。

受信側の受信.phpコードは次のとおりです。 れーれー
送信側のsend.phpコードは次のとおりです。
れーれー
実行結果は図のようになります




見やすくするために、receive_one.php と accept_two.php を作成し、send.php コードを次のコードに変更します。 accept_one.php と accept_two.php には同じコードがあるか、dos を使用して複数の受信機を実行します
れーれー



send.php
れーれー
実行結果は以下の通りです

キューは、配布と処理のためにメッセージを各受信側に配布します。これは完璧に見えますが、さまざまなタスクをより適切に処理したい場合は、公平なスケジューリング が必要です。
たとえば、1 と 3 が単純な人を扱い、2 と 4 が複雑なタスクを扱う場合、タスクが多すぎると、receive_one.php はアイドル状態になり、receive_two.php には重いタスクが含まれます。 以下のようなテストを行っております send.phpを5から50に変更します れーれー
accept_two.php と sleep(3)
れーれー
プログラムを実行すると、結果は次のようになります


すべての accept_one が実行された後、receive_two は 1 つだけ実行されます。その後、receive_one はアイドル状態になります。 受信側で設定するには、次のようにします。 $channel->setPrefetchCount(1);
新しいメッセージは、誰もタスクを完了しなくなるまで受信されず、メッセージは他の受信者に送信されます。
以下のように、receive_one.phpとreceive_two.php リーリー 以下に変更してください
れーれー



www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/735888.html技術記事 1. AMQP_EX_TYPE_DIRECT: 直接接続タイプ。直接接続タイプには、1 対 1 および 1 対 N (N 対 1、N 対 N) も含まれます。connect();$channel = new AMQPChannel($)。接続します); $exchange...
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!