C# 什么';与Windows计划任务相比,使用Web.config计划任务的好处是

C# 什么';与Windows计划任务相比,使用Web.config计划任务的好处是,c#,.net,scheduled-tasks,sitecore,C#,.net,Scheduled Tasks,Sitecore,我们正在考虑通过将大量任务从特定于网站的web.config文件拖到一个Windows schedules任务中来尽可能集中安排任务的方法。 我可以想象这会带来一些负面影响,但我想列出它们,这样我就能很好地解释什么最有效。 我们有不同类型的任务需要定期完成,例如: KeepaliveSitecore本机调度在Sitecore上下文中执行,这意味着您可以通过这种方式轻松与Sitecore通信,但应用程序必须处于活动状态才能执行任务。这就是为什么不可能在特定的时间运行调度代理,只在调度的时间间隔上

我们正在考虑通过将大量任务从特定于网站的web.config文件拖到一个Windows schedules任务中来尽可能集中安排任务的方法。 我可以想象这会带来一些负面影响,但我想列出它们,这样我就能很好地解释什么最有效。 我们有不同类型的任务需要定期完成,例如:


  • KeepaliveSitecore本机调度在Sitecore上下文中执行,这意味着您可以通过这种方式轻松与Sitecore通信,但应用程序必须处于活动状态才能执行任务。这就是为什么不可能在特定的时间运行调度代理,只在调度的时间间隔上运行,因为无法保证应用程序在给定的时刻是健康的

    Windows任务是在上下文之外执行的,可以在特定时间安排,但这种方法缺少急需的Sitecore上下文,这可能会使设计复杂一些,但您始终可以创建Sitecore web服务来处理该问题

    在我看到的实现Windows调度程序方法的真实示例中,有一个场景是“在特定时间发布”:
    我还看到了大型数据推送的实现,就像您所说的那样。在控制台应用程序中,您几乎可以让导入代码在Sitecore上下文之外运行。通过访问Sitecore.Configuration.Factory,您可以实例化数据库、获取项目和创建项目。这就是你所需要的。此外,在http上下文中运行此类代码更有效。

    Sitecore本机调度在Sitecore上下文中执行,这意味着您可以通过这种方式轻松与Sitecore通信,但应用程序必须处于活动状态才能执行任务。这就是为什么不可能在特定的时间运行调度代理,只在调度的时间间隔上运行,因为无法保证应用程序在给定的时刻是健康的

    Windows任务是在上下文之外执行的,可以在特定时间安排,但这种方法缺少急需的Sitecore上下文,这可能会使设计复杂一些,但您始终可以创建Sitecore web服务来处理该问题

    在我看到的实现Windows调度程序方法的真实示例中,有一个场景是“在特定时间发布”:
    我还看到了大型数据推送的实现,就像您所说的那样。在控制台应用程序中,您几乎可以让导入代码在Sitecore上下文之外运行。通过访问Sitecore.Configuration.Factory,您可以实例化数据库、获取项目和创建项目。这就是你所需要的。另外,在http上下文中运行这样的代码更有效。

    还有第三种选择

    在Sitecore中,您可以在Sitecore/system/tasks/schedules中创建任务/

    依次调用sitecore/system/tasks/commands中的命令/

    您可以通过对运行的方法的引用来创建它

    我自己也没试过,所以没办法了

    但是在那里你可以设定一个特定的时间


    这里有一些帮助(尽管这是针对Sitecore 5.3的)。

    还有第三个选项

    在Sitecore中,您可以在Sitecore/system/tasks/schedules中创建任务/

    依次调用sitecore/system/tasks/commands中的命令/

    您可以通过对运行的方法的引用来创建它

    我自己也没试过,所以没办法了

    但是在那里你可以设定一个特定的时间

    这里有一些帮助(尽管这是针对Sitecore 5.3的)