Azure Blob触发器函数和System.Threading.Sleep



我们使用Interfax作为我们的传真提供商。我们有一个Azure Blob存储帐户,以及一个由新上传触发的功能。当我们上传blob时,函数被调用,并且这部分工作正常。事实上,大多数呼叫都能正常工作,但有些呼叫似乎会丢失。

在我们发送传真后,我们有一个循环来检查状态。每次状态检查后,我们调用System.Threading.Sleep(120000(.

其中大约15%的人似乎陷入了困境。我们追踪了这个事件,它似乎没有从睡眠呼叫中返回。

一些信息提到不要在.NET azure函数中使用System.Threading.Sleep。

有人对我们如何解决这个问题有其他建议吗,甚至对可能发生的事情有任何其他见解?

目前,我们在2分钟睡眠的情况下尝试了30次,这意味着一些Azure Blob触发的功能可能会运行一个多小时。也许许多并行调用可能会导致此问题?

Azure函数的执行应尽可能短,并在超时限制内。超时限制因托管Function应用程序的层/计划而异。

对于您的场景,最好使用建议的方法之一来处理这种长时间运行的逻辑。MS文档。一种方法可以是对状态进行durable function检查,甚至是每X分钟/秒检查一次传真请求状态的timer触发器。如果传真提供商提供回调(webhook(,则更适合使用。

相关内容

  • 没有找到相关文章

最新更新