为什么我的连续 azure webjob 运行该函数两次?

WPF*_*ser 4 azure azure-webjobs azure-webjobssdk

我创建了第一个连续运行的天蓝色网络作业;

我不太确定这是一个代码问题,但为了完整起见,这里是我的代码:

static void Main()
{
   var host = new JobHost();
   host.CallAsync(typeof(Functions).GetMethod("ProcessMethod"));
   host.RunAndBlock();
}
Run Code Online (Sandbox Code Playgroud)

对于该功能:

[NoAutomaticTrigger]
public static async Task ProcessMethod(TextWriter log)
{
   log.WriteLine(DateTime.UtcNow.ToShortTimeString() + ": Started");
   while (true)
   {
       Task.Run(() => RunAllAsync(log));
       await Task.Delay(TimeSpan.FromSeconds(60));
   }
   log.WriteLine(DateTime.UtcNow.ToShortTimeString() + "Shutting down..");
}
Run Code Online (Sandbox Code Playgroud)

请注意,异步任务会触发自己的任务。这是为了确保它们以相同的间隔非常准确地启动。工作本身是下载一个网址,解析并在数据库中输入一些数据,但这不应该与我遇到的多实例问题相关。

我的问题是,一旦运行了大约 5 分钟,就会调用第二个 ProcessMethod,这使得我有两个会话同时做同样的事情。第二种方法说它是“从仪表板启动”,尽管我 100% 有信心我自己没有单击任何内容来启动它。

有人经历过类似的事情吗?

小智 5

从 Azure 门户中 WebApp 的“缩放”选项卡将实例计数更改为 1。默认情况下,它设置为 2 个实例,这导致它运行两次。