我能找到的唯一文档是here但它并没有真正解释 TimerInfo 类的属性。我有一些问题
- 函数扩展是否使用 Azure 存储来保存上次触发函数的时间,并将其与当前执行时间进行比较,以查看是否错过了执行并将
IsPastDue
设置为 true? - 如果函数延迟几秒或几毫秒触发,或者仅在完全错过执行时,
IsPastDue
是否会设置为 true? ScheduleStatus.Last
是上次触发的时间还是只是根据 cron 表达式计算出来的?ScheduleStatus.LastUpdated
是什么,是我上次更改 cron 表达式的时间吗?- 什么是
Schedule.GetNextOccurrence
,如果我传递DateTime.Now
,它返回的结果与ScheduleStatus.Next
相同
最佳答案
经过一些测试并阅读源代码后,这是我对其功能的总结。我将解释当 UseMonitor
设置为 true 时它会做什么。
当函数主机启动时,它会检查 Azure 存储以了解上次执行触发器的情况。如果它从未执行过,它将根据您的 cron 表达式等待下一个计划的发生。如果之前已经执行过,则会将上次执行时间与当前时间进行比较,看看是否错过了任何执行。如果它确实错过了任何一个,它会立即执行您的函数并将 IsPastDue
传递为 true。然后它继续按正常时间表执行。
ScheduleStatus.Last
:
- 首次运行时将设置为
default(DateTime)
。 - 如果逾期,这将是您的函数最后一次实际执行的时间
- 否则,它是最后一次执行的时间,四舍五入到最接近的计划执行
ScheduleStatus.Next
:
- 下一个计划的执行时间,通常大约是当前时间,除非执行已过期,在这种情况下,它会是过去的时间。
ScheduleStatus.LastUpdated
:
- 据我所知,这与
ScheduleStatus.Last
相同,只是如果是第一次执行,它将是default(DateTime)
关于c# - azure 函数计时器触发器中的 TimerInfo 类有哪些具体细节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63456649/