使用 Azure Functions V3 (.NET 5) 的计时器触发器

Nie*_*nch 8 c# azure azure-functions .net-5

我正在使用 .NET 5 并开发 Azure Functions。通过 Visual Studio 添加新的计时器触发器函数时,它会添加一个包含以下内容的文件:

public static class Function1
    {
        [FunctionName("Function1")]
        public static void Run([TimerTrigger("0 */5 * * * *")]TimerInfo myTimer, ILogger log)
        {
            log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");
        }
    }
Run Code Online (Sandbox Code Playgroud)

我将其作为照片包含在此处,以强调它无法编译,因为 TimerTrigger 类不存在。

Intellisense 建议我添加以下内容:

using Microsoft.Azure.WebJobs;
Run Code Online (Sandbox Code Playgroud)

但这没有意义,因为那属于以前版本的 Azure Functions。果然,Intellisense 检测到了这一点并显示了这个错误。

在此输入图像描述

那么如何在.NET 5中使用TimerTrigger呢?

也许因为这是相对较新的,似乎还没有关于此的文档或热门帖子。

Pet*_*ons 7

尝试该Microsoft.Azure.Functions.Worker.Extensions.Timer软件包,如下所示

由于在 .NET 隔离进程中运行的函数使用不同的绑定类型,因此它们需要一组唯一的绑定扩展包。

您将在 Microsoft.Azure.Functions.Worker.Extensions 下找到这些扩展包。

直接链接到 NuGet

  • 事实上它仍然失败。当 TimerTrigger 在启动时为“PastDue”时,就会发生这种情况,然后它会锁定并且永远不会正确启动,然后崩溃或冻结几分钟,然后关闭。 (4认同)
  • 警告:当我添加 TimerTrigger 时,我的函数无法再在本地运行。删除后,我可以在本地再次运行它。我尝试重新启动 VS 和整个计算机,但无济于事,所以很确定它是 TimerTrigger。 (2认同)
  • 您是否从 https://github.com/Azure/azure-functions-core-tools 安装了最新的 SDK? (2认同)
  • 我想现在是时候[提出问题](https://github.com/Azure/azure-functions-dotnet-worker/issues)。实际上,它看起来像[这个](https://github.com/Azure/azure-functions-dotnet-worker/issues/534)? (2认同)