[英]What are the specifics of the TimerInfo class in an azure functions timer trigger?
我能找到的唯一文檔在這里,但它並沒有真正解釋 TimerInfo class 上的屬性。 我有一些問題
IsPastDue
的時間並將其與當前執行時間進行比較以查看它是否錯過了執行並設置為真?IsPastDue
是否會設置為 true?ScheduleStatus.Last
是上次觸發還是僅根據 cron 表達式計算?ScheduleStatus.LastUpdated
是我最后一次更改 cron 表達式?DateTime.Now
,什么是Schedule.GetNextOccurrence
會返回與ScheduleStatus.Next
相同的東西 在做了一些測試並閱讀了源代碼之后,這是我對它的作用的總結。 我將解釋UseMonitor
設置為 true 時的作用。
當 function 主機啟動時,它會檢查 azure 存儲是否最后一次執行觸發器。 如果它從未執行過,它會根據您的 cron 表達式等待下一次計划的發生。 如果它在將上次執行時間與當前時間進行比較之前已執行,以查看它是否錯過了任何執行。 如果它確實錯過了任何內容,它會立即執行您的 function 並將IsPastDue
作為 true 傳遞。 然后它繼續按常規時間表執行。
ScheduleStatus.Last
:
default(DateTime)
。 ScheduleStatus.Next
:
ScheduleStatus.LastUpdated
:
ScheduleStatus.Last
相同,除非它是第一次執行時的default(DateTime)
function 擴展是否使用 azure 存儲來保存上次觸發 function 的時間,並將其與當前執行時間進行比較以查看它是否錯過了執行並設置為 true?
IsPastDue 的默認值為 false。
public TimerInfo(TimerSchedule schedule, ScheduleStatus status, bool isPastDue = false)
{
Schedule = schedule;
ScheduleStatus = status;
IsPastDue = isPastDue;
}
如果 function 延遲幾秒或幾毫秒觸發,或者僅當它完全錯過執行時,IsPastDue 是否會設置為 true?
如果計划已逾期,則此值為真。
ScheduleStatus.Last 是上次觸發還是僅根據 cron 表達式計算?
該值是從DateTime.Now
(您上次執行的時間)中獲得的,而不是根據 cron 表達式計算的。
什么是 ScheduleStatus.LastUpdated 是我最后一次更改 cron 表達式?
該值是從與 ScheduleStatus.Last 相同的值獲得的:
ScheduleStatus = new ScheduleStatus
{
Last = adjustedInvocationTime,
Next = _schedule.GetNextOccurrence(adjustedInvocationTime),
LastUpdated = adjustedInvocationTime
};
如果我通過 DateTime.Now,什么是 Schedule.GetNextOccurrence 會返回與 ScheduleStatus.Next 相同的東西
因為 ScheduleStatus 是由 Schedule.GetNextOccurrence 提供的值實例化的。
源代碼:
請看一看。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.