首页 > 解决方案 > 每 15 分钟运行一次 Azure 函数

问题描述

我有一个 Azure 函数,其方法如下所示:

[FunctionName("RunTask")]
public static async Task Run([TimerTrigger("0 */15 * * * *")]TimerInfo myTimer, TraceWriter log)
{
  log.Info("Running task...");
  await Task.CompletedTask;
}

上述方法只是测试计时能力的一个外壳。我希望该功能每 15 分钟运行一次。但是,该任务似乎只在第一遍运行。我基于我在 Azure 门户中看到的内容。在 Azure 门户中,我选择了RunTask查看日志的功能。这让我可以实时查看跟踪日志。

第一个日志正确显示。但是,我没有看到任何额外的日志写入。相反,我看到“过去 [x] 分钟内没有新的痕迹”。

奇怪的是,如果我将计时器从 15 分钟更改为 5 分钟([TimerTrigger("0 */15 * * * *")][TimerTrigger("0 */5 * * * *")]),它会按预期工作。这是为什么?如何将我的函数设置为每 15 分钟运行一次?

请注意,我必须使用 Microsoft.NET.Sdk.Functions-1.0.24 实现。

谢谢!

标签: azureazure-functions

解决方案


定时器触发器没有问题。您的函数每 15 分钟成功触发一次,但日志窗口很脆弱。有时几分钟后它不会显示日志,因此当您将计时器设置为 15 到 5 分钟时,它会正常显示日志。

对于此问题,您可以按照以下步骤查看函数的日志:

  1. 转到函数应用程序的“kudu”。 在此处输入图像描述

  2. 然后点击“Debug console”-->“CMD”-->“LogFiles”-->“Application”-->“Functions”-->“function”,选择你的函数,点击编辑铅笔,就可以看到日志。 在此处输入图像描述


推荐阅读