1
我在我的網站上創建了DNN計劃任務,以生成自上次運行任務後創建的所有用戶的報告。我希望這樣做,以便可以將報告配置爲每天,每週,每月或任何其他持續時間,只需通過更改DNN中的計劃任務的屬性即可。 我的問題是,我不知道如何獲得我的dll內任務的「上次運行日期」。目前還不清楚這是否可行,如果是,那麼我應該使用ScheduleHistoryItem對象的哪個屬性。 (DNN v5.6.2)DNN計劃任務 - 上次運行日期
我在我的網站上創建了DNN計劃任務,以生成自上次運行任務後創建的所有用戶的報告。我希望這樣做,以便可以將報告配置爲每天,每週,每月或任何其他持續時間,只需通過更改DNN中的計劃任務的屬性即可。 我的問題是,我不知道如何獲得我的dll內任務的「上次運行日期」。目前還不清楚這是否可行,如果是,那麼我應該使用ScheduleHistoryItem對象的哪個屬性。 (DNN v5.6.2)DNN計劃任務 - 上次運行日期
是的,這是可能的。一旦通過SchedulingProvider.Instance()。GetScheduleHistory函數拉出了您想要的ScheduleHistoryItems列表,您可以使用內置的ScheduleHistorySortStartDate IComparer對列表進行排序。下面的函數將返回運行的最後一個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;
}