小编Joh*_*Doe的帖子

RabbitMQ 和 PHP 如何将任务返回到队列?

如果处理结果不适合我,如何将消息返回到队列。只找到有关消息确认的信息,但我认为它不适合我。我需要,如果作为处理结果,我将参数 RETRY 消息添加回队列。然后这个工人或另一个工人再次拿起它并尝试处理它。

例如:

<?php
use PhpAmqpLib\Connection\AMQPStreamConnection;

echo ' [*] Waiting for messages. To exit press CTRL+C', "\n";

$connection = new AMQPStreamConnection($AMQP);
$channel = $connection->channel();

$channel->queue_declare('test', false, false, false, false);

$callback = function($msg) {
    $condition = json_decode($msg->body);

    if (!$condition) {
        # return to the queue
    }
};

$channel->basic_consume('test', '', false, true, false, false, $callback);

while(count($channel->callbacks)) {
    $channel->wait();
}

$channel->close();
$connection->close();
?>
Run Code Online (Sandbox Code Playgroud)

php rabbitmq php-amqplib

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

php ×1

php-amqplib ×1

rabbitmq ×1