Я создал свой первый лазурный webjob, который работает непрерывно;Почему мой непрерывный лазурный webjob запускает функцию дважды?
Я не уверен, что это проблема кода, но для полноты картины здесь мой код:
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, анализе и вводе некоторых данных в db, но это не должно быть релевантно для проблемы с несколькими экземплярами, которые я испытываю.
Моя проблема заключается в том, что, как только это работает в течение примерно 5 минут, вызывается второй ProcessMethod, который заставляет меня иметь два сеанса, делающих одно и то же. Второй метод говорит, что он «начался с Dashboard», хотя я на 100% уверен, что не нажимал ничего, чтобы начать его с себя.
Кто-нибудь испытал что-нибудь подобное?
Был ли принятый ответ на вашу проблему? Я вижу то же самое, за исключением того, что число экземпляров экземпляра равно 1 ... Это для веб-мужа, который работает как ожидалось в течение многих месяцев. –