当我登录 Azure 门户时,Azure Function 计时器运行两次

MSO*_*ACC 5 .net azure crontrigger azure-functions

我在 Azure 中有一个定时函数应用程序,计划在每天 22:00 运行。然而,它似乎每天都在 21:59 和 22:00 运行。当我登录 Azure 门户检查日志时,它似乎也是随机运行的。

以下是我收到的重复条目的时间戳示例:

在此输入图像描述

我在网上搜索过但没有找到有效的解决方案。

这是应用程序的签名,大约需要 20 秒才能完成:

[FunctionName("Function1")]
public static void Run([TimerTrigger("0 0 22 * * *", RunOnStartup = false)]TimerInfo myTimer, TraceWriter log)
{
   // My code
}
Run Code Online (Sandbox Code Playgroud)

这是我的 local.settings.json:

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "DefaultEndpointsProtocol=https;AccountName=XXX;AccountKey=XXX",
    "AzureWebJobsDashboard": "DefaultEndpointsProtocol=https;AccountName=XXX;AccountKey=XXX",
    "type": "timerTrigger",
    "schedule": "0 0 22 * * *",
    "useMonitor": false,
    "SQLConn": "Server=tcp:XXX.database.windows.net,1433;Initial Catalog=XXX;Persist Security Info=False;User ID=XXX;Password=XXX;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
  },
  "disabled": false
}
Run Code Online (Sandbox Code Playgroud)

谁能帮我吗?

此外,Azure 功能中的“监视器”部分也没有显示任何异常。

Chr*_*lum 5

我查看了您的函数应用程序的内部日志(感谢分享名称!),我看到以下内容:

2018-03-02 14:43:50.4977179: Function 'DemoAzureFunction.Function1.Run' is configured to run on startup. Executing now.
2018-03-02 14:44:01.7856855: Function 'DemoAzureFunction.Function1.Run' updated status: Last='2018-03-02T14:43:48.6103583+00:00', Next='2018-03-02T22:00:00.0000000+00:00', LastUpdated='3/2/2018 2:43:48 PM'
Run Code Online (Sandbox Code Playgroud)

所以在我看来,在某一时刻你已经RunOnStartup = true在你的功能配置中了。以这种方式配置时,访问门户可以触发计时器立即运行(与配置的计划分开),因为门户交互将唤醒您的函数应用。