Автор оригинала: David Wong.
В этой статье описан пример PHP, использующего ActiveMQ для отправки и обработки сообщений. Подробности заключаются в следующем:
Давайте возьмем в качестве примера простую регистрацию пользователя. Когда пользователь нажимает кнопку регистрации, мы отправляем сообщение, которое принимается PHP в фоновом режиме, а затем обрабатывается.
1. PHP-код выглядит следующим образом:
2. PHP-код выглядит следующим образом:
subscribe('/queue/userReg');
while(true) {
//Judge whether there is information read
if($stomp->hasFrame()) {
$frame = $stomp->readFrame();
$data = json_decode($frame->body, true);
var_dump($data);
//We get data from
//Process the corresponding logic, such as storing in the database, sending verification code and a series of operations.
//$db->query("insert into user values('{$username}','{$password}')");
//sendVerify();
//Indicates that the message has been processed. The ack() function is very important
$stomp->ack($frame);
}
sleep(1);
}Запустите два вышеуказанных файла сценария соответственно
> /data/php56/bin/php 1.php > /data/php56/bin/php 2.php
Мы также можем разделить вышеперечисленные 2. PHP-код разделен на несколько этапов.
2. PHP-код выглядит следующим образом:
subscribe('/queue/userReg');
while(true) {
//Judge whether there is information read
if($stomp->hasFrame()) {
$frame = $stomp->readFrame();
$data = json_decode($frame->body, true);
//Registration information storage
//$ret = db->query("insert into user values('{$data['username']}', '{$data['password']}')");
//The demo here is set to true
$ret = true;
if($ret) {
Echo $data ['user name '],'store successfully', PHP_ EOL;
//If the storage is successful, the data will be sent to another message queue for further processing
$stomp->send('/queue/sendVerify', $frame->body);
$stomp->ack($frame);
}
}
sleep(1);
}3. PHP-код выглядит следующим образом:
subscribe('/queue/sendVerify');
while(true) {
//Judge whether there is information read
if($stomp->hasFrame()) {
$frame = $stomp->readFrame();
$data = json_decode($frame->body, true);
//$RET = sendverify() sends the verification code. In fact, it should request an interface
$ret = true;
if($ret) {
Echo $data ['username '],'Send verification code successfully', PHP_ EOL;
$stomp->ack($frame);
}
}
sleep(1);
}Снова запустите три вышеперечисленных сценария
> /data/php56/bin/php 1.php > /data/php56/bin/php 2.php > /data/php56/bin/php 3.php
Для получения дополнительной информации о PHP читатели, интересующиеся им, могут ознакомиться со следующими темами: Учебник по разработке расширений PHP, краткое изложение навыков сетевого программирования PHP, краткое изложение использования PHP curl, энциклопедия навыков работы с массивами PHP, учебник по структуре и алгоритмам PHP, краткое изложение алгоритмов программирования PHP и Краткое описание использования строк PHP
Я надеюсь, что эта статья будет полезна для программирования на PHP.
Оригинал: “https://developpaper.com/php-uses-activemq-to-send-and-process-messages/”