簡體   English   中英

Function 帶時間觸發的app,開啟后直接觸發。 如何防止這種情況

[英]Function app with time trigger, is triggered directly when enabled. How to prevent that

我有一個 function 應用程序,它有一個應該每晚運行一次的時間觸發器。 function 看起來與此類似:

    [FunctionName("XName")]
    public async Task RunAsync(
        [TimerTrigger("0 0 0 * * *", RunOnStartup = false)]
        TimerInfo myTimer)
    {
       ...
    }   

由於某些原因,可能需要將此 function 禁用幾天,然后再啟用。 但是,即使我將RunOnStartup設置為false ,function 也會直接觸發,即使我在上午 9 點啟用它也是如此。

我想阻止它,我該怎么辦?

PS 我不想更改 Cron 表達式,因為沒有特定日期或特定模式來禁用 function。 這是一件很隨意的事情。

您可能需要檢查TimerInfo object 的IsPastDue屬性。它...

獲取一個值,該值指示此計時器調用是否是由於錯過了計划。

您看到的執行可能是因為平台認為它錯過了計划的發生,因為 function 被禁用並試圖彌補丟失的事件。

當當前 function 調用晚於計划時, isPastDue屬性為真。 例如,function 應用重新啟動可能會導致錯過調用。

資料來源: Azure 函數的計時器觸發器 - 用法

使用IsPastDue屬性確定觸發器是否為當前觸發器並且僅在IsPastDuefalse時才執行。

暫無
暫無

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

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