php – rabbitmq AMQP :: consume()
发布时间:2020-12-13 17:23:36 所属栏目:PHP教程 来源:网络整理
导读:AMQP函数consume()是一个带回调的阻塞函数, 是否可以为consume()函数设置超时,因此在特定的时间后它不会再阻塞并且代码执行完成了? 解决方法 是的,这是如何: $amqp = new AMQPConnection($your_connection_params);$amqp-setTimeout($seconds); 然后,当您
AMQP函数consume()是一个带回调的阻塞函数,
是否可以为consume()函数设置超时,因此在特定的时间后它不会再阻塞并且代码执行完成了? 解决方法
是的,这是如何:
$amqp = new AMQPConnection($your_connection_params); $amqp->setTimeout($seconds); 然后,当您在队列上调用consume()时,如果在超时期限内没有消息到达,则将使用消息“资源暂时不可用”从consume()抛出AMQPException.如果您突然消耗掉()或达到超时,请务必在队列对象上调用cancel()以正确重置使用者.为此,您需要生成一个全局唯一的使用者标记,并将其作为未记录的第三个参数传递给消耗: $tag = uniqid() . microtime(true); $queue->consume($callback,$flags,$tag); $queue->cancel($tag); 这样,您可以稍后再次调用consume(),而不会产生令人头疼的奇怪问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |