Quartz.net v1.0 cron触发间歇性触发

时间:2012-05-18 12:08:44

标签: c# asp.net-mvc-3 sql-server-2008 quartz.net crontrigger

我们目前在使用SQL Server 2008的MVC3网站上使用Quartz.net的v1.0.3.3。

网站在IIS7上运行,我们在其中将Idle Timeout属性设置为0.我们还安装了App Warmup Module。作为一个安全网,我们还设置了一个Windows计划任务,每隔5分钟下载一个页面(使用powershell脚本),以确保该站点处于唤醒状态,因为我们不确定该应用程序预热模块是否正常工作。

我们有13个cron触发器分散在每天的不同点运行。有些人每天一次,每小时一次,有些每10/15分钟一次(都很简单)。没有触发器使用与另一个触发器相同的作业,因此每个作业都有自己的触发器,因此我可以看到阻塞不是问题。

每次作业开始和结束时都会记录,以及可能发生的任何异常。当作业运行时,没有人会抛出异常,因此我们知道作业没有被触发,然后无声地失败。

所有工作都在运行。这是问题的频率。昨天每小时工作(0 0 * * *?)早上分别在2,5,6和8运行,然后再运行到下午3点。在此期间,其他不相关的工作都在运行,因此网站处于清醒状态并触发了触发器。

我们的web.config的quartz部分如下(我已经删除了我们的连接字符串节点):

  <quartz>
    <add key="quartz.threadPool.type" value="Quartz.Simpl.SimpleThreadPool, Quartz" />
    <add key="quartz.threadPool.threadCount" value="25" />
    <add key="quartz.threadPool.threadPriority" value="Normal" />
    <add key="quartz.jobStore.misfireThreshold" value="60000" />
    <add key="quartz.jobStore.useProperties" value="true" />
    <add key="quartz.jobStore.type" value="Quartz.Impl.AdoJobStore.JobStoreTX, Quartz" />
    <add key="quartz.jobStore.driverDelegateType" value="Quartz.Impl.AdoJobStore.SqlServerDelegate, Quartz" />
    <add key="quartz.jobStore.tablePrefix" value="[qrtz]." />
    <add key="quartz.jobStore.dataSource" value="default" />
    <add key="quartz.dataSource.default.provider" value="SqlServer-20" />
    <add key="quartz.jobStore.lockHandler.type" value="Quartz.Impl.AdoJobStore.UpdateLockRowSemaphore, Quartz" />
    <add key="quartz.jobStore.acquireTriggersWithinLock" value="true" />
  </quartz>

我们最初将ThreadPriority设置为“Low”,并将ThreadCount设置为5,但从那时起将其提升为“Normal”和25,无效。

我意识到我们正在使用旧版本的quartz.net,但我们不希望升级,因为我们的数据库和我们的所有作业都是针对v1.0进行编码并重新实现作业而db不是一个选项,因为我们的时间限制。

我已经搜查了互联网,虽然有很多问题,其中cron触发器没有触发,但我找不到任何补救措施来发现零星或间歇性触发器

非常感谢您阅读这个冗长的问题,并提前感谢您的帮助。

0 个答案:

没有答案