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;
}