Получение в последний раз функции Azure - PullRequest
1 голос
/ 01 мая 2019

В Visual Studio 2017 я создал новый проект функции Azure, который сгенерировал следующий код:

using System;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;

namespace FunctionApp1
{
    public static class Function1
    {
        [FunctionName("Function1")]
        public static void Run([TimerTrigger("0 */5 * * * *")]TimerInfo myTimer, TraceWriter log)
        {
            var lastRun = myTimer.ScheduleStatus.Last;

            log.Info($"C# Timer trigger function executed at: {DateTime.Now}");
        }
    }
}

У меня вопрос по поводу переменной lastRun.Является ли это:

  1. В последний раз, когда функция выполнялась успешно
  2. В последний раз, когда функция выполнялась независимо от успеха или неудачи
  3. Что-тоеще полностью

Я искал документацию Azure и не смог найти какую-либо информацию о свойствах объекта TimerInfo, поэтому было бы полезно понять, можно ли использовать эту переменную, чтобы узнать, когда в последний разфункция запускалась или нет.

Ответы [ 3 ]

0 голосов
/ 01 мая 2019

Свойство «Last» в ScheduleStatus объекта TimerInfo - это дата и время, когда таймер функции последнего времени срабатывал, независимо от состояния выполнения или сбоя функции.И когда таймер срабатывает, он запускает выполнение функции таймера.

0 голосов
/ 02 мая 2019

Вот пример для поиска последнего запуска

log.LogInformation ($ "Состояние расписания Последнее: { myTimer.ScheduleStatus.Last.ToString () }");

using System;
using System.Reflection;
 
public static void Run(TimerInfo myTimer, ILogger log)
{
   log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");
   Type timerInfo = typeof(TimerInfo);
   log.LogInformation("TimerInfo Methods:");
   MethodInfo[] methodInfo = timerInfo.GetMethods();
   foreach (MethodInfo mInfo in methodInfo)
   {
      log.LogInformation($"{mInfo.ToString()}");
   }
   log.LogInformation("TimerInfo Members:");
   MemberInfo[] memberInfo = timerInfo.GetMembers();
   foreach (MemberInfo mbInfo in memberInfo)
   {
      log.LogInformation($"{mbInfo.ToString()}");
   }
   
   log.LogInformation($"Schedule Status Last: {**myTimer.ScheduleStatus.Last.ToString()**}");
   
}
0 голосов
/ 01 мая 2019

TimerInfo.ScheduleStatus.Last

Получает или задает последнее записанное вхождение расписания.

Согласно комментариям в Исходный код на GitHub .

Это не указывает на какое-либо отношение к результату последнего запуска, поэтому я думаю, что ответ 2: «Последний раз, когда функция выполнялась, независимо от успеха или неудачи».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...