我们有Azure Functions每2秒执行一次存储过程。大多数情况下,存储过程将在不到1秒的时间内完成90%的时间。但是,如果json大且有时具有很多值,则它将运行2秒钟以上。我不希望Azure功能在其运行完成之前启动。
A1
这是正确的方法还是我可以进行控制的方式,因此在例外情况下,天蓝色函数不会触发。根据文档,计时器触发器表示为单例,但我看到了它触发并导致某些数据问题的情况。
任何建议表示赞赏。
答案 0 :(得分:0)
如果仍在运行未完成的调用,则计时器触发功能将不会再次触发。有一个内部计时器来跟踪。函数调用完成后,函数完成执行后,计时器将再次启动。因此,在任何给定时刻,Azure函数的一个实例都将运行。
如果函数执行花费的时间超过计时器间隔,则直到当前调用完成后,才会触发另一个执行。当前执行完成后,计划下一次执行。
现在,您可以使用属性“ 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
}