我知道有两种选择:
但这究竟意味着什么呢?
"非持久性"如下:如果没有消费者,AMQP结构将尝试传递消息,消息将被删除?
"持久"如下:AMQP将重试消息,直到消费者接受它?
小智 41
标记为"持久"的邮件将传递到"持久"队列,将记录到磁盘.在发生崩溃时恢复持久队列,以及在崩溃之前存储的任何持久消息.
Grz*_*tyl 15
delivery_mode在AMQP中确定在代理重新启动后是否将消息存储在磁盘上.您可以将消息标记为持久性 - 通过delivery_mode property = 2在PHP中发布消息时设置(PECL AMQP扩展):
$exchange->publish($text, $routingKey, null, array('delivery_mode' => 2));
Run Code Online (Sandbox Code Playgroud)
您还需要将队列声明为持久(或者在代理停止后将其删除)
$queue->setFlags(AMQP_DURABLE);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
41575 次 |
| 最近记录: |