2012-11-22 128 views
1

设置我的日程安排项目时间表: 20090326T112200 | 20990426T112200 | 127 | 00:20:00Sitecore的计划任务不运行

应每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> 

任何帮助吗?谢谢。

+0

计划的“上次运行”字段的值是多少?你有任务分配这个时间表吗?你在日志中看到什么时间表? –

+0

感谢您的更新。实际上最后一次运行字段从不工作。问题来自该方法。 – hui

回答

3

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

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项目。你应该应该看到日程安排代理的输出,它正在启动/停止你的特定命令。如果您的计划项目失败,这将发生错误输出。这使我们进入下一步...

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

希望这会有所帮助。

8

我在试图弄清楚为什么计划中的任务没有开火并且认为我会针对特定场景发布解决方案时遇到了这篇文章。

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

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

删除补丁:从配置中删除,你仍然有Sitecore的一个更快的初始化,但与计划任务运行。

在我的博客文章Sitecore scheduled tasks not working上可以找到更详细的解释。

+0

谢谢!一个注意:通常位于此文件夹App_Config \ Include \ zzz中的InitializeSpeedBooster.config – Sergey