异步定时器触发功能

时间:2018-08-09 13:53:20

标签: azure-functions

是否可以在TimerTrigger上创建一个异步运行的函数?换句话说,在计划下一次执行之前不会导致触发器等待完成的功能吗?

我们有一个场景,我们需要每5秒安排一次函数执行。大多数执行不到一秒即可完成,但偶尔也可能会花费更长的时间(超过5秒)。在那种情况下,我们仍然希望我们的5秒计划能够生效,即使那样会导致并行执行。

根据this

  

如果函数执行花费的时间超过计时器间隔,则直到当前调用完成后,才会触发另一个执行。当前执行完成后,计划下一次执行。

我正在寻找的是避免延迟下一次执行的可能方法。

1 个答案:

答案 0 :(得分:0)

我认为添加队列可能会解决您的问题,这是最常见的异步处理模式。当执行计时器触发器时,请求将请求作为消息传递到存储队列,而不是计时器函数处理。然后,第二个函数处理实际请求,而不会影响计时器函数的任何执行时间。

因此本质上是计时器触发器->消息->队列触发器。可以在https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-storage-blob#trigger---example

中找到有关Azure函数存储队列触发器的更多详细信息。