【发布时间】:2016-05-10 21:33:53
【问题描述】:
我创建了我的第一个连续运行的天蓝色网络作业;
我不太确定这是代码问题,但为了完整起见,这里是我的代码:
static void Main()
{
var host = new JobHost();
host.CallAsync(typeof(Functions).GetMethod("ProcessMethod"));
host.RunAndBlock();
}
对于函数:
[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..");
}
请注意,异步任务会触发它自己的任务。这是为了确保它们以相同的间隔非常准确地启动。工作本身就是下载一个 url,解析并在数据库中输入一些数据,但这与我遇到的多实例问题无关。
我的问题是,一旦它运行了大约 5 分钟,就会调用第二个 ProcessMethod,这使我有两个会话同时做同样的事情。第二种方法说它是“从仪表板开始”,即使我 100% 确信我没有点击任何东西来启动它。
有人经历过类似的事情吗?
【问题讨论】:
-
接受的答案是您的问题吗?我看到了同样的情况,除了我的实例数设置为 1... 这是针对一个已经按预期工作了好几个月的网络作业。
标签: azure azure-webjobs azure-webjobssdk