Azure在计时器触发器上实现单例...正在执行存储过程

时间:2020-08-05 15:57:35

标签: azure-functions azure-function-app

我们有Azure Functions每2秒执行一次存储过程。大多数情况下,存储过程将在不到1秒的时间内完成90%的时间。但是,如果json大且有时具有很多值,则它将运行2秒钟以上。我不希望Azure功能在其运行完成之前启动。

A1

这是正确的方法还是我可以进行控制的方式,因此在例外情况下,天蓝色函数不会触发。根据文档,计时器触发器表示为单例,但我看到了它触发并导致某些数据问题的情况。

任何建议表示赞赏。

1 个答案:

答案 0 :(得分:0)

如果仍在运行未完成的调用,则计时器触发功能将不会再次触发。有一个内部计时器来跟踪。函数调用完成后,函数完成执行后,计时器将再次启动。因此,在任何给定时刻,Azure函数的一个实例都将运行。

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

Check here

现在,您可以使用属性“ IsPastDue”并相应地控制执行。 IsPastDue标志传递给您的azure函数,以指示计时器是否过期

当当前函数调用晚于计划时间时,IsPastDue属性为true。例如,重新启动功能应用程序可能会导致调用丢失。

引自here

{
"Schedule":{
},
"ScheduleStatus": {
    "Last":"2016-10-04T10:15:00+00:00",
    "LastUpdated":"2016-10-04T10:16:00+00:00",
    "Next":"2016-10-04T10:20:00+00:00"
},
"IsPastDue":false

}