azure - 指南 OnMessageOptions.AutoRenewTimeout

标签 azure azureservicebus azure-servicebus-queues

有人可以提供有关使用 Azure 服务总线 OnMessageOptions.AutoRenewTimeout 的更多指导吗 http://msdn.microsoft.com/en-us/library/microsoft.servicebus.messaging.onmessageoptions.autorenewtimeout.aspx

因为我没有找到太多有关此选项的文档,并且想知道这是否是续订消息锁定的正确方法

我的用例:

1) 消息处理队列的锁定持续时间为 5 分钟(允许的最大值)

2) 消息处理器使用 OnMessageAsync 消息泵从队列中读取(使用 ReceiveMode.PeekLock) 在手动调用 msg.CompleteAsync 之前,长时间运行的处理可能需要长达 10 分钟的时间来处理消息

3) 我希望消息处理器自动更新其锁定状态,直到预计完成处理的时间(约 10 分钟)。如果过了该时间还没有完成,锁应该自动释放。

谢谢

--更新

我最终没有得到关于 AutoRenewTimeout 的更多指导。我最终使用了一个自定义 MessageLock 类,该类根据计时器自动更新消息锁。

查看要点 - https://gist.github.com/Soopster/dd0fbd754a65fc5edfa9

最佳答案

要处理长消息处理,您应该设置 AutoRenewTimeout == 10 分钟(根据您的情况)。这意味着每次 LockDuration 过期时,都会在这 10 分钟内更新锁定。

例如,如果您的 LockDuration 为 3 分钟,而 AutoRenewTimeout 为 10 分钟,则每 3 分钟锁定将自动更新一次(在 3 分钟、6 分钟和 9 分钟后) ),消息被消费12分钟后锁会自动释放。

关于azure - 指南 OnMessageOptions.AutoRenewTimeout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27953882/

相关文章:

azure-functions - 从 azure 函数推迟或放弃消息服务总线队列

c# - 在 .NET 4.5 应用程序上使用 WindowsAzure.Servicebus 包版本 4.1.10 时出现生成错误

azure - 一旦事件中心的数据过期,我们在从 azure-eventhub 接收消息时是否可以获得重复的偏移值?

azure - 使用 azure oauth 客户端凭据流时如何添加可选声明以访问 token

sql-server - 我可以删除 SQL Server 安装引导日志文件吗?是否有一个设置可以自动管理这些文件?

Azure SQL Server 弹性池 - 自动将数据库添加到池中

azure - 来自 Azure 服务总线监听器的错误 "Exception while executing function"

azure - 通过 Azure 公开 BasicHttpRelayBinding 上的 WSDL

azure - Microsoft Azure 网站创建 : 'Cannot modify this site because another operation is in progress'

Azure 服务总线队列上的 NServiceBus 发布-订阅