我将我的日程项目时间表设置为: 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>
有任何帮助吗?感谢。
答案 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页面...执行此方法。如果 不起作用......那么你就知道问题所在。
希望这有帮助。