繁体   English   中英

Azure功能和存储队列

[英]Azure Function and storage queue

我尝试将Azure Storage Queue与azure函数一起使用,并且我想象它非常简单-从队列中获取消息,进行处理,并在必要时添加新消息。 但是现在我一团糟,在函数处理当前消息时读取了消息(我的过程很长),有时我看到队列中的消息已经很久了。

可以用任何方式说Azure函数:

  1. 获取消息并从队列中删除
  2. 正在处理讯息
  3. 如果成功-什么都没有发生,如果失败(例外)-读取当前值。

而已。 没有任何复杂的逻辑。 可能吗?

根据以上评论

服务总线中的消息触发了您的功能。 您处理该消息。 如果您满意并在给定的执行时间内完成(默认5分钟),则消息将标记为已完成。 如果您不满意,请抛出异常。 该功能将认为消息未完成并放弃它,因此它会重新出现在队列中,但是您的重试计数将一直增长,直到达到最大值,然后将消息发送到死信队列。

需要注意的几点

如果您不抛出异常并且进程自己执行(由于某些处理错误),则它仍将其视为已放弃的消息,并将重试。 但是,如果函数成功执行而没有引发任何错误,但是结果不是您想要的,则抛出您自己的异常。

同样在服务总线中,增加锁定时间以匹配功能的处理时间。 例如,函数需要5分钟才能完成,但是您在服务总线中的消息锁定时间为30秒,消息将重新出现在消息队列中,而消息的另一个副本仍在由函数处理。 因此,请增加您认为足以使功能完成该过程的服务总线消息锁定时间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM