![](/img/trans.png)
[英]How do I set delivery_mode on message using php extension AMQP with RabbitMQ?
[英]Setting delivery mode for AMQP (RabbitMQ)
文档说:
public bool AMQPExchange::publish ( string $message , string $routing_key [, int $params = 0 [, array $attributes ]] )
所以我有这个
$this->exchange->publish(serialize($queue_message), $routing_key,AMQP_MANDATORY,array('delivery_mode' => '2'));
我正在尝试让交易所保持尝试传递消息吗?
您不能告诉交易所继续尝试传递您的消息。
通常,邮件的收件人会自动确认该邮件,或者他们会在成功处理后确认该邮件。 我推荐这两个选择中的第二个。 如果未确认消息,则将重新排队该消息,并且如果队列中有多个订阅者,则有可能另一个订阅者将对其进行处理。
我的经验是与主题交流有关的所有内容(在该案例中,您通过使多个队列订阅相同的routing_key来实现扇出。我始终使用delivery_mode 2并将队列声明为持久队列。
如果在发布消息之前队列不存在,那么它们将静默消失。
我怀疑您的问题出在字符串'2'
。 您是否尝试过使用数字2
? 同样,最好在数组中指定一个content_type。 那会做到的
$this->exchange->publish(serialize($queue_message),
$routing_key,AMQP_MANDATORY,array('delivery_mode' => 2,
'content_type' => 'text/json'));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.