Azure Functions IsPastDue - 何时设置为 true?

Azure Functions IsPastDue - when is it set to true?

我正在尝试了解 IsPastDue 标志。

我写了下面的函数来模拟它。

[FunctionName("Function1")]
public static void Run([TimerTrigger("*/30 * * * * *")]TimerInfo myTimer, ILogger log)
{
    if (myTimer.IsPastDue)
    {
        log.LogInformation($"$Custom$C# Timer trigger was delayed at: {DateTime.Now}");
    }
    else
    {
        log.LogInformation($"$Custom$C# Timer trigger function started at: {DateTime.Now}");
        Thread.Sleep(45000);
        log.LogInformation($"$Custom$C# Timer trigger function ended at: {DateTime.Now}");
    }
}

生成的日志是:

标志 IsPastDue 从未设置为 true。什么时候设置为真?

当当前函数调用晚于计划时,isPastDue 属性 是 true。例如,函数应用程序 restart 可能会导致错过调用。 Here 是关于它的官方文档。

您可以尝试通过 run the function -> stop the function -> re-run the function 在 visual studio 本地重现。但这不是 100% 的重现。我试了10多次,只出现1次。这是我测试中 isPastDuetrue 时的屏幕截图: