[英]How to prevent AWS SQS from deleting a message when Lambda function triggered fails to process that message?
[英]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
屬性確定觸發器是否為當前觸發器並且僅在IsPastDue
為false
時才執行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.