Quartz.net v1.0 cron triggers intermittently firing

464 views Asked by At

We are currently using v1.0.3.3 of Quartz.net on an MVC3 website with SQL Server 2008.

The website is running on IIS7 in which we have set the Idle Timeout property to 0. We have also installed an App Warmup Module. As a safety net we also have a windows scheduled task set up to download a page every 5 minutes (using a powershell script) to ensure the site is awake since we were unsure if the app warmup module was working correctly.

We have 13 cron triggers scattered to run at different points of each day. Some fire once a day, some hourly, some every 10/15 minutes (all simple). No trigger uses the same job as another so each job has it's own trigger so as far as I can see blocking is not the issue.

We log each time a job starts and ends, as well as any exception that may occur. When the jobs do run, none are throwing exceptions so we know the jobs aren't being triggered and then failing silently.

All the jobs run. It is the frequency that is the issue. yesterday an hourly job (0 0 * * * ?) ran at 2, 5, 6 and 8 in the morning then not run again until 3pm. During this time other unrelated jobs ran so the site is awake and firing triggers.

The quartz section of our web.config is as follows (I have removed our connection string node):

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

We originally had our ThreadPriority set to "Low" and our ThreadCount set to 5 but have since upped it to "Normal", and 25, to no avail.

I realise we are using an older version of quartz.net but we do not wish to upgrade since our database and all our jobs have been coded against v1.0 and re-implementing the jobs and db is not an option given our time constraints.

I have scoured the interwebs and while there are plenty of questions where cron triggers are not firing, I can't find any remedies to sporadic or intermittent triggers

Many thanks for reading this lengthy question and thanks in advance for you help.

0

There are 0 answers