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

发布于 2024-12-20 17:28:22 字数 204 浏览 2 评论 0原文

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

I have created DNN scheduled task on my website to generate a report of all users created since the last run of the task. I want to do this so that the report can be configured to generate daily, weekly, monthly or any other duration, just by changing the properties of the scheduled task in DNN.
My problem is that I am not sure how to get the "last run date" of a task inside my dll. It is not clear if this is possible, and if it is, then which property of the ScheduleHistoryItem object I should use.
(DNN v5.6.2)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

涙—继续流 2024-12-27 17:28:22

是的,这是可能的。通过 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;
}

Yes it is possible. Once you have pulled the list of ScheduleHistoryItems you want via the SchedulingProvider.Instance().GetScheduleHistory function, you can sort the list by the built in ScheduleHistorySortStartDate IComparer. The function below will return the last ScheduledHistoryItem that ran, which you can then check the EndDate property of the result to determine when the task last completed.

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;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文