Dotnetnuke 5 DNN计划任务-上次运行日期

Dotnetnuke 5 DNN计划任务-上次运行日期,dotnetnuke-5,Dotnetnuke 5,我已在我的网站上创建了DNN计划任务,以生成自上次运行任务以来创建的所有用户的报告。我想这样做,以便只需更改DNN中计划任务的属性,即可将报告配置为生成每日、每周、每月或任何其他持续时间。 我的问题是,我不知道如何在dll中获取任务的“最后运行日期”。不清楚这是否可能,如果可能,那么我应该使用ScheduleHistoryItem对象的哪个属性。 (DNN v5.6.2)是的,这是可能的。通过ScheduleProvider.Instance().GetScheduleHistory函数提取所需

我已在我的网站上创建了DNN计划任务,以生成自上次运行任务以来创建的所有用户的报告。我想这样做,以便只需更改DNN中计划任务的属性,即可将报告配置为生成每日、每周、每月或任何其他持续时间。 我的问题是,我不知道如何在dll中获取任务的“最后运行日期”。不清楚这是否可能,如果可能,那么我应该使用ScheduleHistoryItem对象的哪个属性。
(DNN v5.6.2)

是的,这是可能的。通过ScheduleProvider.Instance().GetScheduleHistory函数提取所需的ScheduleHistory项目列表后,可以通过内置的ScheduleHistorySortStartDate图标比较程序对列表进行排序。下面的函数将返回上次运行的ScheduledHistoryItem,然后可以检查结果的EndDate属性以确定任务上次完成的时间

public DotNetNuke.Services.schedule.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());//按开始日期对返回的结果进行排序
如果(scheduleHistory.Count>0)
返回(DotNetNuke.Services.Scheduling.ScheduleHistoryItem)scheduleHistory[0];
}
返回null;
}