脚本宝典收集整理的这篇文章主要介绍了php – Azure服务总线PeekLock仅在五秒钟后超时,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我可以使用PeekLock连接到队列并检索消息,但是,如果我花费超过五秒钟来删除消息,Azure会抛出404错误,指示锁已过期,并且消息将被放回队列中,就好像它从未被处理过.
这是我用过的一些测试代码的例子.在此示例中假设已加载Azure SDK并已引用相应的命名空间.
<?PHP // .. load the sdk and namespaces etc ... $service_bus = ServicesBuilder::getInstance()->createServiceBusService([connection string goes here]); $options = new ReceiveMessageOptions(); $options->setPeekLock(); $message = $service_bus->receiveQueueMessage("[queue name here]",$options); PRint "message body is: " . $message->getBody(); $service_bus->deleteMessage($message); ?>
此代码执行完美 – 检索邮件,显示正文,并删除邮件.但是,如果我插入睡眠(5);就在deleteMessage()调用之前,Service Bus API返回以下错误:
通过Azure门户创建队列时,我明确地将锁定超时时间设置为五分钟,并且我已经尝试在其他队列上设置不同的超时时间段,并且所有这些时间段仍然恢复为五秒到期.
我在这做错了什么?
问题解决了:
我收到了Azure支持团队的回复,他很快发现Azure门户没有持续创建队列时选择的锁定持续时间.默认的到期时间显然是五秒钟(虽然我在任何文档中找不到任何对此默认值的引用,这很烦人),这就是它超时的原因.
以上是脚本宝典为你收集整理的php – Azure服务总线PeekLock仅在五秒钟后超时全部内容,希望文章能够帮你解决php – Azure服务总线PeekLock仅在五秒钟后超时所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。