gpt4 book ai didi

php - rabbitmq AMQP::消费()

转载 作者:可可西里 更新时间:2023-10-31 22:56:10 26 4
gpt4 key购买 nike

AMQP 函数 consume() 是一个带有回调的阻塞函数,是否可以为 consume() 函数设置超时,以便在特定时间后不再阻塞并且代码执行完成?

最佳答案

是的,方法如下:

$amqp = new AMQPConnection($your_connection_params);
$amqp->setTimeout($seconds);

然后,当您在队列上调用 consume() 时,如果在超时期限内没有消息到达,则会从 consume() 中抛出 AMQPException 并显示消息“Resource temporary unavailable”。如果您曾经中断 consume() 或遇到超时,请务必在队列对象上调用 cancel() 以正确重置消费者。为此,您需要生成一个全局唯一的消费者标签,并将其作为未记录的第三个参数传递给消费者:

$tag = uniqid() . microtime(true);
$queue->consume($callback, $flags, $tag);
$queue->cancel($tag);

这样,您以后就可以再次调用 consume() 而不会出现让您头晕目眩的奇怪问题。

关于php - rabbitmq AMQP::消费(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15487657/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com