Azure函数和存储队列

Azure函数和存储队列,azure,queue,azure-storage,azure-functions,message-queue,Azure,Queue,Azure Storage,Azure Functions,Message Queue,我尝试将Azure存储队列与Azure函数一起使用,我认为它非常简单—从队列中获取消息,处理,必要时添加新消息。但现在我弄得一团糟,在我的函数处理当前消息的过程中读取的消息我有很长的处理时间,有时我看到队列中的消息,这些消息是很久以前处理的 可以说Azure功能: 获取消息并从队列中删除 处理消息 如果成功-未发生任何事件,如果失败异常-读取当前数据。 没别的了。没有任何复杂的逻辑。有可能吗?基于上述评论 您的功能由服务总线中的消息触发。您可以处理消息。如果您满意并在给定的执行时间内完成了5分钟

我尝试将Azure存储队列与Azure函数一起使用,我认为它非常简单—从队列中获取消息,处理,必要时添加新消息。但现在我弄得一团糟,在我的函数处理当前消息的过程中读取的消息我有很长的处理时间,有时我看到队列中的消息,这些消息是很久以前处理的

可以说Azure功能:

获取消息并从队列中删除 处理消息 如果成功-未发生任何事件,如果失败异常-读取当前数据。
没别的了。没有任何复杂的逻辑。有可能吗?

基于上述评论

您的功能由服务总线中的消息触发。您可以处理消息。如果您满意并在给定的执行时间内完成了5分钟的默认设置,则消息将标记为已完成。如果你不高兴,抛出例外。该函数将考虑消息未完成并放弃它,使其重新出现在队列中,然而,您的重试计数将继续增长,直到它达到最大值之后,消息被发送到死信队列。 需要注意的几点

如果您没有抛出异常,而进程由于某些处理错误而自行抛出异常,它仍会认为它已放弃消息,并将重试。然而,若函数成功执行,并没有抛出任何错误,但结果不是您想要的,那个么抛出ex


此外,在服务总线中增加锁定时间以匹配函数的处理时间。e、 g.函数需要5分钟才能完成,但服务总线中的消息锁定时间为30秒,消息将重新出现在消息队列中,而函数仍在处理消息的另一个副本。因此,增加您所考虑的服务总线消息锁定时间对于函数完成这个过程就足够了。p> 您的长期流程运行多长时间?默认情况下,函数在5分钟后超时。@JohnHoerr可以超过5分钟。我可以扩展这个值吗?是的,你可以做所有这些,这是函数所做的。默认值为5分钟,您可以将其延长到10分钟。@ImranArshad怎么做?