AMQP功能消耗()是一个回调一个阻挡功能,是否有可能设置消耗()函数超时,所以以后的时间特定量现在不块和代码执行完成?
Answer 1:
是的,这里是如何:
$amqp = new AMQPConnection($your_connection_params);
$amqp->setTimeout($seconds);
然后当你调用消耗()上的队列,如果没有消息的超时时间内到达,一个AMQPException将消耗()的消息,“资源暂时不可用”被抛出。 如果你打出来的消费()或打超时,一定要打电话取消()队列对象上正确复位消费者。 为了做到这一点,你需要生成一个全局唯一的消费标签,并把它作为一个未公开的,第三个参数消耗:
$tag = uniqid() . microtime(true);
$queue->consume($callback, $flags, $tag);
$queue->cancel($tag);
这样,你可以再打消耗()同样没有奇怪的问题,这将使你的头旋。
文章来源: rabbitmq AMQP::consume()