Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Azure函数TimerTrigger仅运行一次_C#_Azure_Azure Functions_Azure Functions Runtime_Timer Trigger - Fatal编程技术网

C# Azure函数TimerTrigger仅运行一次

C# Azure函数TimerTrigger仅运行一次,c#,azure,azure-functions,azure-functions-runtime,timer-trigger,C#,Azure,Azure Functions,Azure Functions Runtime,Timer Trigger,这是我的Function.Json { "generatedBy": "Microsoft.NET.Sdk.Functions-1.0.28", "configurationSource": "attributes", "bindings": [ { "type": "timerTrigger", "schedule": "*/5 * * * * *", "useMonitor": true, "runOnStartup": f

这是我的Function.Json

{   "generatedBy": "Microsoft.NET.Sdk.Functions-1.0.28",   "configurationSource": "attributes",   "bindings": [
    {
      "type": "timerTrigger",
      "schedule": "*/5 * * * * *",
      "useMonitor": true,
      "runOnStartup": false,
      "name": "myTimer"
    }   ],   "disabled": false,   "scriptFile": "../bin/PullRequest.dll",   "entryPoint": "PullRequest.PullRequest.Run" }
这是我的实际功能:

[FunctionName("PullRequest")]
public static void Run([TimerTrigger("*/5 * * * * *")]TimerInfo myTimer, ILogger log)
{
     if (myTimer.IsPastDue)
     {
         log.LogInformation("Timer is running late!");
     }
     log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");
}
当我尝试在Azure portal上运行此功能时,它只运行一次并停止

这是Azure功能的日志:

我重新运行了它,现在它只运行了一次。

比如:您显示给我们的日志显示函数
PullRequest
至少运行了3次

  • 一旦
    执行
    日志行不可见,则原因不明
  • 一次是因为计时器启动(@11:30:00)
  • 一次,因为它是通过主机API以编程方式调用的(也称为手动)
您的CRON表达式
*/5****
大致翻译为“每次秒数可被5整除时运行此操作”。这与您提供的日志不匹配。你确定你用的是CRON表达式吗

Azure函数使用库来解释CRON表达式。CRON表达式包括六个字段:

{second}{minute}{hour}{day}{month}{day of week}

摘自

编辑:
在计时器触发器上运行的功能会在指定的计时器间隔内自动触发。要让函数真正运行,您(当然)需要运行一些执行触发器的东西。否则:如何触发它们

在Azure中,函数运行时负责在正确的时间触发函数。在本地,调试应用程序时自动启动的
func.exe
工具将为您执行此操作。但是,如果这不运行,什么也不会发生

Azure功能核心工具允许您从命令提示符或终端在本地计算机上开发和测试功能。您的本地函数可以连接到live Azure服务,并且您可以使用完整函数运行时在本地计算机上调试您的函数

要运行函数项目,请运行函数主机。主机为项目中的所有函数启用触发器

摘自


简而言之:“主机启用触发器。它需要运行才能触发任何函数。”

时间触发器将根据CORN表达式自动执行,即在您的情况下,此函数将每五秒钟执行一次,如果您从azure portal运行,则只会运行一次。 如果要检查上次执行的计时,可以转到“监视”选项卡并检查计时。 我已在本地执行了此操作,并按预期工作

@Rafal同意,但我相信这个cron表达式是每5秒一次。@DavidG/是的。我不知道为什么它没有运行。它只运行一次。您给我们的日志显示它运行了不止一次?@DavidG我正在重新运行该功能。这就是为什么它显示多个times@DavidG我的坏大卫。给出的时间是5分钟而不是5秒。我确实从
monitor
tab中得到一个日志,上面说每5分钟运行一次。至少我能看到它在运行。当然。现在,当我打开一个窗口时,只有它在运行。不过,我不确定自己是否理解得很好。你能把我引向正确的方向吗?这样我可以得到更多的信息。谢谢。这是一些值得考虑的信息。