DNN Запланированное задание - дата последнего запуска

Я создал запланированное задание DNN на своем веб-сайте, чтобы сгенерировать отчет обо всех пользователях, созданных с момента последнего запуска задания. Я хочу сделать это так, чтобы отчет можно было настроить на ежедневную, еженедельную, ежемесячную или любую другую продолжительность, просто изменив свойства запланированной задачи в DNN. Моя проблема заключается в том, что я не уверен, как получить "дату последнего запуска" задачи в моей DLL. Не ясно, если это возможно, и если это так, то какое свойство объекта ScheduleHistoryItem мне следует использовать. (DNN v5.6.2)

1 ответ

Да, это возможно. После того, как вы извлекли требуемый список ScheduleHistoryItems с помощью функции SchedulingProvider.Instance().GetScheduleHistory, вы можете отсортировать список по встроенному в IComparer ScheduleHistorySortStartDate. Приведенная ниже функция возвращает последний запущенный ScheduledHistoryItem, который затем можно проверить свойством EndDate результата, чтобы определить, когда задача в последний раз была выполнена.

public DotNetNuke.Services.Scheduling.ScheduleHistoryItem GetLastScheduleHistoryItem(int ScheduleId = -1)
{
System.Collections.ArrayList scheduleHistory = DotNetNuke.Services.Scheduling.SchedulingProvider.Instance().GetScheduleHistory(ScheduleId);
if (scheduleHistory != null)
{
    scheduleHistory.Sort(new DotNetNuke.Services.Scheduling.ScheduleHistorySortStartDate()); //Sort the returned results by the Start Date

    if (scheduleHistory.Count > 0)
        return (DotNetNuke.Services.Scheduling.ScheduleHistoryItem)scheduleHistory[0];

}

return null;
}
Другие вопросы по тегам