Inhaltsverzeichnis
1、AMQP_EX_TYPE_DIRECT:直连型
Heim php教程 php手册 php amqp 消息队列 RabbitMQ 交换器类型 直连 (三)

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

Jun 13, 2016 am 09:42 AM
amqp 消息 队列

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());
}
Nach dem Login kopieren

发送端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();
Nach dem Login kopieren

运行结果如图所示




创建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());
}
Nach dem Login kopieren




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();
Nach dem Login kopieren

运行结果如下

列队会把消息分配给每一个接收端分配处理这里看似完美但是如果想要更好的处理不同的任务就需要 公平调度
比如当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");
}
Nach dem Login kopieren

receive_two.php 加上 sleep(3)
function callback($envelope, $queue) {
    var_dump($envelope->getBody());
    sleep(3);
    $queue->nack($envelope->getDeliveryTag());
}
Nach dem Login kopieren

我们运行程序结果如下


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




Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was bedeutet es, wenn eine Nachricht gesendet, aber von der anderen Partei abgelehnt wurde? Was bedeutet es, wenn eine Nachricht gesendet, aber von der anderen Partei abgelehnt wurde? Mar 07, 2024 pm 03:59 PM

Die Nachricht wurde gesendet, aber von der anderen Partei abgelehnt. Dies bedeutet, dass die gesendeten Informationen erfolgreich vom Gerät gesendet wurden, die andere Partei die Nachricht jedoch aus irgendeinem Grund nicht erhalten hat. Genauer gesagt liegt dies in der Regel daran, dass die andere Partei bestimmte Berechtigungen festgelegt oder bestimmte Maßnahmen ergriffen hat, was den normalen Empfang Ihrer Informationen verhindert.

So wischen Sie in iMessage unter iOS 17 nach rechts und antworten schnell So wischen Sie in iMessage unter iOS 17 nach rechts und antworten schnell Sep 20, 2023 am 10:45 AM

So verwenden Sie Wischen zum Antworten in iMessages auf dem iPhone Hinweis: Die Funktion „Wischen zum Antworten“ funktioniert nur bei iMessage-Konversationen in iOS 17, nicht bei regulären SMS-Konversationen in der Nachrichten-App. Öffnen Sie die Nachrichten-App auf Ihrem iPhone. Gehen Sie dann zur iMessage-Konversation und wischen Sie einfach nach rechts über die iMessage, auf die Sie antworten möchten. Sobald dies erledigt ist, wird die ausgewählte iMessage im Fokus sein, während alle anderen Nachrichten im Hintergrund verschwimmen. Sie sehen ein Textfeld zum Eingeben einer Antwort und ein „+“-Symbol für den Zugriff auf iMessage-Apps wie Check-ins, Orte, Aufkleber, Fotos und mehr. Geben Sie einfach Ihre Nachricht ein,

iOS 17: So verwenden Sie Emojis als Aufkleber in Nachrichten iOS 17: So verwenden Sie Emojis als Aufkleber in Nachrichten Sep 18, 2023 pm 05:13 PM

In iOS17 hat Apple seiner Nachrichten-App mehrere neue Funktionen hinzugefügt, um die Kommunikation mit anderen Apple-Benutzern kreativer und unterhaltsamer zu gestalten. Eines der Features ist die Möglichkeit, Emojis als Aufkleber zu verwenden. Sticker gibt es schon seit Jahren in der Nachrichten-App, aber bisher hat sich daran nicht viel geändert. Dies liegt daran, dass Apple in iOS17 alle Standard-Emojis als Aufkleber behandelt, sodass sie auf die gleiche Weise wie echte Aufkleber verwendet werden können. Das bedeutet im Wesentlichen, dass Sie nicht mehr darauf beschränkt sind, sie in Gespräche einzufügen. Jetzt können Sie sie auch an eine beliebige Stelle in der Nachrichtenblase ziehen. Sie können sie sogar übereinander stapeln, um kleine Emoji-Szenen zu erstellen. Die folgenden Schritte zeigen Ihnen, wie es in iOS17 funktioniert

So bearbeiten Sie Nachrichten auf dem iPhone So bearbeiten Sie Nachrichten auf dem iPhone Dec 18, 2023 pm 02:13 PM

Mit der nativen Nachrichten-App auf dem iPhone können Sie gesendete Texte ganz einfach bearbeiten. Auf diese Weise können Sie Ihre Fehler und Zeichensetzung korrigieren und sogar falsche Phrasen/Wörter, die möglicherweise in Ihren Text übernommen wurden, automatisch korrigieren. In diesem Artikel erfahren Sie, wie Sie Nachrichten auf dem iPhone bearbeiten. So bearbeiten Sie Nachrichten auf dem iPhone. Erforderlich: iPhone mit iOS16 oder höher. Sie können iMessage-Text nur in der Nachrichten-App bearbeiten, und zwar nur innerhalb von 15 Minuten nach dem Senden des Originaltexts. Nicht-iMessage-Text wird nicht unterstützt und kann daher nicht abgerufen oder bearbeitet werden. Starten Sie die Nachrichten-App auf Ihrem iPhone. Wählen Sie unter „Nachrichten“ die Konversation aus, deren Nachricht Sie bearbeiten möchten

Wenn eine Nachricht gesendet, aber von der anderen Partei abgelehnt wurde, sollte sie dann blockiert oder gelöscht werden? Wenn eine Nachricht gesendet, aber von der anderen Partei abgelehnt wurde, sollte sie dann blockiert oder gelöscht werden? Mar 12, 2024 pm 02:41 PM

1. Zur schwarzen Liste hinzugefügt: Die Nachricht wurde gesendet, aber von der anderen Partei abgelehnt. Im Allgemeinen können Sie zu diesem Zeitpunkt keine Nachrichten an die andere Partei senden in der Lage sein, Ihre Nachrichten zu empfangen. 2. Netzwerkprobleme: Wenn der Netzwerkzustand des Empfängers schlecht ist oder ein Netzwerkfehler vorliegt, kann die Nachricht möglicherweise nicht erfolgreich empfangen werden. An dieser Stelle können Sie versuchen, zu warten, bis das Netzwerk wieder normal ist, bevor Sie die Nachricht erneut senden. 3. Die andere Partei hat „Bitte nicht stören“ eingerichtet: Wenn der Empfänger „Bitte nicht stören“ in WeChat eingerichtet hat, werden die Nachrichten des Absenders innerhalb eines bestimmten Zeitraums nicht erinnert oder angezeigt.

Analyse- und Optimierungsstrategien für die Leistung der Java-Warteschlange Analyse- und Optimierungsstrategien für die Leistung der Java-Warteschlange Jan 09, 2024 pm 05:02 PM

Leistungsanalyse und Optimierungsstrategie von JavaQueue Queue Zusammenfassung: Queue (Queue) ist eine der am häufigsten verwendeten Datenstrukturen in Java und wird in verschiedenen Szenarien häufig verwendet. In diesem Artikel werden die Leistungsprobleme von JavaQueue-Warteschlangen unter zwei Aspekten erörtert: Leistungsanalyse und Optimierungsstrategien sowie spezifische Codebeispiele. Einführungswarteschlange ist eine First-In-First-Out-Datenstruktur (FIFO), die zur Implementierung des Producer-Consumer-Modus, der Thread-Pool-Aufgabenwarteschlange und anderer Szenarien verwendet werden kann. Java bietet eine Vielzahl von Warteschlangenimplementierungen, wie z. B. Arr

Erscheinungsdatum des Vivox100 bestätigt! Erfahren Sie als Erster die neuesten Nachrichten Erscheinungsdatum des Vivox100 bestätigt! Erfahren Sie als Erster die neuesten Nachrichten Mar 22, 2024 pm 02:18 PM

Erscheinungsdatum des Vivox100 bestätigt! Die neuesten Nachrichten wurden kürzlich in der Technologiewelt vorgestellt. Dieses mit Spannung erwartete Produkt hat endlich seinen Veröffentlichungstermin bestätigt, was viele Verbraucher und Technologiebegeisterte begeistert. Es wird berichtet, dass Vivox100s Ende dieses Monats offiziell veröffentlicht wird. Was sind die Highlights des mit Spannung erwarteten neuen Produkts? Vivox100s, das neueste Meisterwerk der Vivox-Serie, hat seit seiner Veröffentlichung viel Aufmerksamkeit erregt.

Anwendung der Warteschlangentechnologie bei Nachrichtenverzögerung und Nachrichtenwiederholung in PHP und MySQL Anwendung der Warteschlangentechnologie bei Nachrichtenverzögerung und Nachrichtenwiederholung in PHP und MySQL Oct 15, 2023 pm 02:26 PM

Anwendung der Warteschlangentechnologie bei Nachrichtenverzögerung und Nachrichtenwiederholung in PHP und MySQL Zusammenfassung: Mit der kontinuierlichen Entwicklung von Webanwendungen wird die Nachfrage nach hoher Parallelitätsverarbeitung und Systemzuverlässigkeit immer höher. Als Lösung wird die Warteschlangentechnologie in PHP und MySQL häufig verwendet, um Nachrichtenverzögerungs- und Nachrichtenwiederholungsfunktionen zu implementieren. In diesem Artikel wird die Anwendung der Warteschlangentechnologie in PHP und MySQL vorgestellt, einschließlich der Grundprinzipien von Warteschlangen, Methoden zur Verwendung von Warteschlangen zur Implementierung von Nachrichtenverzögerungen und Methoden zur Verwendung von Warteschlangen zur Implementierung von Nachrichtenwiederholungen

See all articles