Jadual Kandungan
1、AMQP_EX_TYPE_DIRECT:直连型
Rumah pembangunan bahagian belakang tutorial php php amqp 消息队列 RabbitMQ 交换器类型 直连 (三)_PHP教程

php amqp 消息队列 RabbitMQ 交换器类型 直连 (三)_PHP教程

Jul 13, 2016 am 10:37 AM
amqp maklumat beratur

1、AMQP_EX_TYPE_DIRECT:直连型

直连型又包括: 1对1 和1对N(N对1、 N对N)
\
接收端receive.php代码如下
<?php

$connect = new AMQPConnection();
$connect->connect();

$channel = new AMQPChannel($connect);

$exchange = new AMQPExchange($channel);
$exchange->setName('exchange');
$exchange->setType(AMQP_EX_TYPE_DIRECT);
$exchange->declare();

$queue = new AMQPQueue($channel);
$queue->setName('logs');
$queue->declare();

$queue->bind('exchange', 'logs');

while (true) {
    $queue->consume('callback');
}

$connection->close();

function callback($envelope, $queue) {
    var_dump($envelope->getBody());
    $queue->nack($envelope->getDeliveryTag());
}
Salin selepas log masuk

发送端send.php代码如下
<?php

$connect = new AMQPConnection();
$connect->connect();

$channel = new AMQPChannel($connect);

$exchange = new AMQPExchange($channel);
$exchange->setName('exchange');
$exchange->setType(AMQP_EX_TYPE_DIRECT);
$exchange->declare();

$exchange->publish('direct type test','logs');
var_dump("Send Message OK");

$connect->disconnect();
Salin selepas log masuk

运行结果如图所示
\



\ 创建receive_one.php和receive_two.php 并把send.php代码改成如下代码方便我们观看 receive_one.php 和 receive_two.php 代码相同 或者用dos运行多个接收端
<?php

$connect = new AMQPConnection();
$connect->connect();

$channel = new AMQPChannel($connect);

$exchange = new AMQPExchange($channel);
$exchange->setName('exchange');
$exchange->setType(AMQP_EX_TYPE_DIRECT);
$exchange->declare();

$queue = new AMQPQueue($channel);
$queue->setName('logs');
@$queue->declare();

$queue->bind('exchange', 'logs');

while (true) {
    $queue->consume('callback');
}

$connection->close();

function callback($envelope, $queue) {
    var_dump($envelope->getBody());
    $queue->nack($envelope->getDeliveryTag());
}
Salin selepas log masuk




send.php
<?php

$connect = new AMQPConnection();
$connect->connect();

$channel = new AMQPChannel($connect);

$exchange = new AMQPExchange($channel);
$exchange->setName('exchange');
$exchange->setType(AMQP_EX_TYPE_DIRECT);
$exchange->declare();

for ($index = 1; $index < 5; $index++) {
    $exchange->publish($index,'logs');
    var_dump("Send:$index");
}

$exchange->delete();
$connect->disconnect();
Salin selepas log masuk

运行结果如下 \

列队会把消息分配给每一个接收端分配处理这里看似完美但是如果想要更好的处理不同的任务就需要 公平调度
比如当1、3处理的都是简单的人 2、4都是处理的复杂的任务 如果任务过多时 receive_one.php是空闲的而receive_two.php是任务繁重的 我们进行如下测试 send.php改成5改成50
for ($index = 1; $index < 50; $index++) {
    $exchange->publish($index,'logs');
    var_dump("Send:$index");
}
Salin selepas log masuk

receive_two.php 加上 sleep(3)
function callback($envelope, $queue) {
    var_dump($envelope->getBody());
    sleep(3);
    $queue->nack($envelope->getDeliveryTag());
}
Salin selepas log masuk

我们运行程序结果如下
\

receive_one全部运行完而receive_two才运行一个 之后receive_one一直空闲 我们可以通过 在接收端设置 $channel->setPrefetchCount(1);
任务没人完成前不接收新的消息把消息发送给其他接收端
如下receive_one.php 和 receive_two.php
$channel = new AMQPChannel($connect);
Salin selepas log masuk
改成如下
$channel = new AMQPChannel($connect);
$channel->setPrefetchCount(1);
Salin selepas log masuk




www.bkjia.comtruehttp://www.bkjia.com/PHPjc/735888.htmlTechArticle1、AMQP_EX_TYPE_DIRECT:直连型 直连型又包括: 1对1 和1对N(N对1、 N对N) 接收端receive.php代码如下 connect();$channel = new AMQPChannel($connect);$exchange...
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah yang dimaksudkan apabila mesej telah dihantar tetapi ditolak oleh pihak lain? Apakah yang dimaksudkan apabila mesej telah dihantar tetapi ditolak oleh pihak lain? Mar 07, 2024 pm 03:59 PM

Mesej telah dihantar tetapi ditolak oleh pihak lain Ini bermakna maklumat yang dihantar telah berjaya dihantar daripada peranti, tetapi atas sebab tertentu, pihak lain tidak menerima mesej tersebut. Secara lebih khusus, ini biasanya kerana pihak lain telah menetapkan kebenaran tertentu atau mengambil tindakan tertentu, yang menghalang maklumat anda daripada diterima secara normal.

iOS 17: Cara menggunakan emoji sebagai pelekat dalam Messages iOS 17: Cara menggunakan emoji sebagai pelekat dalam Messages Sep 18, 2023 pm 05:13 PM

Dalam iOS17, Apple telah menambah beberapa ciri baharu pada apl Mesejnya untuk menjadikan komunikasi dengan pengguna Apple lain lebih kreatif dan menyeronokkan. Salah satu cirinya ialah keupayaan untuk menggunakan emoji sebagai pelekat. Pelekat telah wujud dalam apl Mesej selama bertahun-tahun, tetapi setakat ini, ia tidak banyak berubah. Ini kerana dalam iOS17, Apple menganggap semua emoji standard sebagai pelekat, membolehkan ia digunakan dengan cara yang sama seperti pelekat sebenar. Ini pada asasnya bermakna anda tidak lagi terhad untuk memasukkannya ke dalam perbualan. Kini anda juga boleh menyeretnya ke mana-mana sahaja pada gelembung mesej. Anda juga boleh menyusunnya di atas satu sama lain untuk mencipta adegan emoji kecil. Langkah berikut menunjukkan kepada anda cara ia berfungsi dalam iOS17

Cara meleret ke kanan dan membalas dengan cepat dalam iMessage pada iOS 17 Cara meleret ke kanan dan membalas dengan cepat dalam iMessage pada iOS 17 Sep 20, 2023 am 10:45 AM

Cara Menggunakan Leret untuk Membalas dalam iMessages pada iPhone Nota: Ciri Leret untuk Membalas hanya berfungsi dengan perbualan iMessage dalam iOS 17, bukan perbualan SMS biasa dalam apl Messages. Buka apl Mesej pada iPhone anda. Kemudian, pergi ke perbualan iMessage dan hanya leret ke kanan pada iMessage yang ingin anda balas. Setelah ini dilakukan, iMessage yang dipilih akan menjadi fokus manakala semua mesej lain akan kabur di latar belakang. Anda akan melihat kotak teks untuk menaip balasan dan ikon "+" untuk mengakses apl iMessage seperti Daftar Masuk, Tempat, Pelekat, Foto dan banyak lagi. Hanya masukkan mesej anda,

Bagaimana untuk mengedit mesej pada iPhone Bagaimana untuk mengedit mesej pada iPhone Dec 18, 2023 pm 02:13 PM

Apl Mesej asli pada iPhone membolehkan anda mengedit teks yang dihantar dengan mudah. Dengan cara ini, anda boleh membetulkan kesilapan, tanda baca dan juga frasa/perkataan yang salah secara automatik yang mungkin telah digunakan pada teks anda. Dalam artikel ini, kita akan belajar cara mengedit mesej pada iPhone. Cara Mengedit Mesej pada iPhone Diperlukan: iPhone menjalankan iOS16 atau lebih tinggi. Anda hanya boleh mengedit teks iMessage pada apl Messages, dan kemudian hanya dalam masa 15 minit selepas menghantar teks asal. Teks bukan iMessage tidak disokong, jadi ia tidak boleh diambil atau diedit. Lancarkan apl Mesej pada iPhone anda. Dalam Mesej, pilih perbualan dari mana anda ingin mengedit mesej

Mesej telah dihantar tetapi telah ditolak oleh pihak lain Adakah saya patut menyekatnya atau memadamnya? Mesej telah dihantar tetapi telah ditolak oleh pihak lain Adakah saya patut menyekatnya atau memadamnya? Mar 12, 2024 pm 02:41 PM

1. Ditambah pada senarai hitam: Jika mesej telah dihantar tetapi ditolak oleh pihak yang satu lagi, ia biasanya disenaraihitamkan Pada masa ini, anda tidak akan dapat menghantar mesej kepada pihak yang satu lagi dan pihak yang satu lagi tidak akan dapat menerima mesej anda. 2. Masalah rangkaian: Jika keadaan rangkaian penerima kurang baik atau terdapat kegagalan rangkaian, mesej mungkin tidak berjaya diterima. Pada ketika ini, anda boleh cuba menunggu sehingga rangkaian kembali normal sebelum menghantar mesej semula. 3. Pihak satu lagi telah menyediakan Jangan Ganggu: Jika penerima telah menyediakan Jangan Ganggu dalam WeChat, mesej penghantar tidak akan diingatkan atau dipaparkan dalam tempoh masa tertentu.

Bagaimana untuk menyediakan Xiaomi Mi 14 Pro untuk menyalakan skrin untuk mesej? Bagaimana untuk menyediakan Xiaomi Mi 14 Pro untuk menyalakan skrin untuk mesej? Mar 18, 2024 pm 12:07 PM

Xiaomi 14Pro ialah model utama dengan prestasi dan konfigurasi yang sangat baik. Ia telah mencapai jualan yang tinggi sejak dikeluarkan secara rasmi Banyak fungsi kecil Xiaomi 14Pro akan diabaikan oleh semua orang fungsinya kecil, , tetapi sangat praktikal Setiap orang akan menghadapi pelbagai masalah apabila menggunakan telefon bimbit Jadi bagaimana untuk menyediakan Xiaomi 14Pro untuk menyalakan skrin untuk mesej. Bagaimana untuk menyediakan Xiaomi Mi 14 Pro untuk menyalakan skrin untuk mesej? Langkah 1: Buka apl Tetapan telefon anda. Langkah 2: Leret ke bawah sehingga anda menemui pilihan "Skrin kunci dan kata laluan" dan klik untuk masuk. Langkah 3: Dalam menu "Skrin kunci & kod laluan", cari dan klik pilihan "Hidupkan skrin untuk pemberitahuan". Langkah 4: Pada halaman "Hidupkan skrin apabila menerima pemberitahuan", hidupkan suis untuk mendayakan

Cara Meninggalkan Mesej Video iPhone Menggunakan FaceTime Cara Meninggalkan Mesej Video iPhone Menggunakan FaceTime Oct 26, 2023 pm 11:25 PM

Dengan keluaran iOS 17, Apple telah menambah banyak ciri, ciri dan peningkatan baharu pada sistem pengendalian mudah alihnya. Salah satu daripadanya ialah kini mungkin untuk meninggalkan mesej video dan audio iPhone FaceTime jika seseorang terlepas panggilan anda. Selepas anda meninggalkan mesej, rakan dan keluarga anda juga boleh memainkan mesej anda pada Apple Watch mereka, menjadikannya lebih mudah untuk anda terus berhubung. Langkah pertama untuk meninggalkan mesej video semasa panggilan FaceTime adalah untuk memulakan panggilan. Jika orang di sebelah tidak menjawab panggilan, pilihan untuk merakam video akan dipaparkan pada skrin. Selepas mengklik pilihan ini, kira detik bermula dari 5 hingga 1, selepas itu anda boleh mula merakam mesej. Antara muka adalah mesra pengguna dengan butang "Panggil Lagi" dan butang "Rakam Video".

Tarikh keluaran Vivox100s disahkan! Jadilah orang pertama yang mengetahui berita terkini Tarikh keluaran Vivox100s disahkan! Jadilah orang pertama yang mengetahui berita terkini Mar 22, 2024 pm 02:18 PM

Tarikh keluaran Vivox100s disahkan! Berita terkini telah dipratonton Baru-baru ini, terdapat gelombang keghairahan mengenai Vivox100s dalam dunia teknologi Produk yang dinanti-nantikan ini akhirnya mengesahkan tarikh keluarannya, membuatkan ramai pengguna dan peminat teknologi teruja dengannya. Dilaporkan bahawa Vivox100s akan dikeluarkan secara rasmi pada penghujung bulan ini Apakah kejutan yang akan dibawa oleh produk baharu yang dinanti-nantikan ini. Vivox100s, sebagai karya terbaharu siri Vivox, telah menarik banyak perhatian sejak pendedahannya.

See all articles