簡體   English   中英

azure 函數定時器觸發器中的 TimerInfo class 的細節是什么?

[英]What are the specifics of the TimerInfo class in an azure functions timer trigger?

我能找到的唯一文檔在這里,但它並沒有真正解釋 TimerInfo class 上的屬性。 我有一些問題

  • function 擴展是否使用 azure 存儲來保存上次觸發IsPastDue的時間並將其與當前執行時間進行比較以查看它是否錯過了執行並設置為真?
  • 如果 function 延遲幾秒或幾毫秒觸發,或者僅當它完全錯過執行時, 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)
  • 如果它過期了,這將是你的 function 執行的最后一次
  • 否則,它是最后一次執行舍入到最近的計划執行

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 提供的值實例化的。

源代碼:

https://github.com/Azure/azure-webjobs-sdk-extensions/blob/a3a5a49a64f3592c1eb7c1296086dc83c2011e96/src/WebJobs.Extensions/Extensions/Timers/TimerInfo.cs

https://github.com/Azure/azure-webjobs-sdk-extensions/blob/a3a5a49a64f3592c1eb7c1296086dc83c2011e96/src/WebJobs.Extensions/Extensions/Timers/Listener/TimerListener.cs

請看一看。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM