azure 函数计时器触发器中的 TimerInfo 类有哪些具体细节?

Mic*_*ick 10 .net c# azure azure-functions

我能找到的唯一文档是here,但它并没有真正解释 TimerInfo 类的属性。我有一些问题

  • 函数扩展是否使用天蓝色存储来保存函数上次触发的时间,并将其与当前执行时间进行比较,以查看是否错过了执行并设置为IsPastDuetrue?
  • IsPastDue如果函数延迟几秒或几毫秒触发,或者仅在完全错过执行时才设置为 true ?
  • ScheduleStatus.Last最后一次触发还是只是根据 cron 表达式计算的?
  • ScheduleStatus.LastUpdated我上次更改 cron 表达式是什么?
  • 那返回的结果和我通过的Schedule.GetNextOccurrence一样吗ScheduleStatus.NextDateTime.Now

Mic*_*ick 12

在做了一些测试和阅读源代码之后,这是我对其功能的总结。UseMonitor我将解释当设置为 true时它会做什么。

当函数主机启动时,它会检查 Azure 存储以了解上次执行触发器的情况。如果它从未执行过,它将根据您的 cron 表达式等待下一个计划的发生。如果之前已经执行过,则会将上次执行时间与当前时间进行比较,看看是否错过了任何执行。如果它确实错过了任何一个,它会立即执行您的函数并传递IsPastDue为 true。然后它继续按正常时间表执行。

ScheduleStatus.Last:

  • 第一次运行时将被设置为default(DateTime)
  • 如果逾期,这将是您的函数最后一次执行的实际时间
  • 否则,它是最后一次执行的时间,四舍五入到最接近的计划执行时间

ScheduleStatus.Next:

  • 下一个计划的执行时间通常大约是当前时间,除非执行已逾期,在这种情况下,它将是过去的时间。

ScheduleStatus.LastUpdated:

  • 据我所知,这与第一次执行时的ScheduleStatus.Last情况相同default(DateTime)

  • _除了第一次执行时它将是默认值(日期时间)_但“ScheduleStatus.Last”的行为也与此类似。 (2认同)