【发布时间】:2016-04-29 19:10:21
【问题描述】:
我在使用 php + RabbitMQ + MySQL 时遇到了一些问题。
我有 php 的工作人员,更新数据库中的一条记录。现在我试图纠正 如果服务器 MySQL 消失了就可以工作。
我在做什么: 我正在尝试重新连接到 DB 10 次,如果我不能 - 需要将此按摩返回给 RabbitMQ。
对于接受消息我使用 basic_ack,对于拒绝我使用 basic_nack。
示例:
if ($can_accept_message) {
$message->delivery_info['channel']->basic_ack($message->delivery_info['delivery_tag']);
} else {
$message->delivery_info['channel']->basic_nack($message->delivery_info['delivery_tag']);
}
但是 basic_nack 从队列中删除了这条消息,我不能再重复它;(
阅读: https://github.com/php-amqplib/php-amqplib/issues/221
但还是不行。
怎么了?或许您还有其他想法?
【问题讨论】:
-
你能告诉我们你的队列配置吗?和其他虚拟问题,你确定你输入了
else? -
>> 你能告诉我们你的队列的配置吗? 像这样尝试:github.com/php-amqplib/php-amqplib/blob/… >> 还有其他愚蠢的问题,你确定你输入其他的? 是的