Sitecore计划任务未运行

时间:2012-11-22 05:15:03

标签: sitecore

我将我的日程项目时间表设置为: 20090326T112200 | 20990426T112200 | 127 | 00:20:00

它应该每20分钟运行一次。但是在部署它们之后,似乎这个计划从未运行过。

web.config中的调度如下所示:

<scheduling>
    <!-- Time between checking for scheduled tasks waiting to execute -->
    <frequency>00:05:00</frequency>
    <!-- Agent to process schedules embedded as items in a database -->
    <agent type="Sitecore.Tasks.DatabaseAgent" method="Run" interval="00:10:00">
        <param desc="database">core</param>
        <param desc="schedule root">/sitecore/system/tasks/schedules</param>
        <LogActivity>true</LogActivity>
    </agent>
    <!-- Agent to process schedules embedded as items in a database -->
    <agent type="Sitecore.Tasks.DatabaseAgent" method="Run" interval="00:10:00">
        <param desc="database">master</param>
        <param desc="schedule root">/sitecore/system/tasks/schedules</param>
        <LogActivity>true</LogActivity>
    </agent>

有任何帮助吗?感谢。

3 个答案:

答案 0 :(得分:8)

我在试图找出为什么计划任务没有解雇时发现这个帖子,并且认为我已经发布了一个特定场景的解决方案。

我发现的问题是我安装了Sitecore SIM InitializeSpeedBooster.cofig,它删除了以下内容,阻止了计划任务的运行。

    <processor type="Sitecore.Pipelines.Loader.InitializeScheduler, Sitecore.Kernel">
      <patch:delete />
    </processor>

删除该补丁:从配置中删除,您仍然可以更快地初始化Sitecore,但计划任务正在运行。

可以在我的Sitecore scheduled tasks not working博客文章中找到更详细的说明。

答案 1 :(得分:3)

如果应用程序池未循环关闭,Sitecore将仅运行计划任务。换句话说,如果您的应用程序没有收到足够的流量,IIS可能会循环关闭应用程序池以节省资源。为了防止这种情况发生,您可以设置一个保持活动的服务,该服务在设定的时间间隔内向您的应用程序发出请求,以确保应用程序池永远不会停止。

答案 2 :(得分:3)

由于其体系结构,调度是ASP.NET应用程序中的一致问题。 Sitecore试图解决这个问题,但在我看来,它做了一个中等的工作。 Barbosa描述了一个明确的问题,但Sitecore有一个你可以使用的内置keepalive系统。在我的web.config(版本6.3)中,它是在您发布的数据库调度代理之后直接配置的。

我们没有评估问题所需的所有信息。但是,从您的评论中,您的上次运行字段似乎是空的?这是个问题。 必须具有调度工作的值。如果“现在”和“上次运行”值之间的时间间隔大于“计划”字段中的时间值,则计划项目才会启动。

以下是我的Sitecore网站正常运行的示例(RAW值):

Schedule: 20000101|21000101|127|23:59:00
Last run: 20121126T074001

所以......接下来的问题是:您是否在日志中看到了调度代理的输出?首先确保您正在记录INFO级别。你应该看到这样的东西:

1924 10:40:22 INFO  Scheduler - Adding agent: Sitecore.Tasks.DatabaseAgent (interval: 00:10:00)

如果您没有看到,那么Sitecore没有启动计划程序,您应该打开Sitecore支持请求。如果你看到这个,那么问题很可能是你的Sitecore Schedule或Command项目。您应该查看日程安排代理程序的输出,它正在启动/停止您的特定命令。如果您的计划项目失败,则会发生错误输出。这将我们带到下一步......

您的计划项目有一个命令字段,该字段必须链接到系统/任务/命令下的有效项目。该项的Type和Method字段实际上特定于正在执行哪个方法。如果设置正确,我将采取的下一步是创建一个带有单个按钮的一次性ASPX页面...执行此方法。如果 不起作用......那么你就知道问题所在。

希望这有帮助。