在PHP中使Rabbit消息持久化

时间:2014-02-03 18:17:03

标签: php rabbitmq

我正在使用http://www.php.net/manual/en/book.amqp.php在我的服务器上使用Rabbit。 我有问题让我的消息持久化。我将交换和队列设置为AMQP_DURABLE,但在重新启动服务器后,队列为空。看起来消息没有保存到磁盘中。

我发布的消息是:http://www.php.net/manual/en/amqpexchange.publish.php

1 个答案:

答案 0 :(得分:1)

您需要将邮件设置为持久。你现在正在做的是只将交换和队列设置为持久,这正是发生的事情。

因此,要将邮件保存到磁盘,您需要将delivery_mode设置为2。这意味着,durable

看看这个thread以查看它的实际效果(代码是从@Grzegorz Motyl的答案中无耻地复制的):

$exchange->publish($text, $routingKey, null, array('delivery_mode' => 2));