We're using Quartz.net and need the jobs to fire more often. Job is set to fire in 3 seconds but it usually takes 15-30 seconds before it's run.
I've also tried (without result) < add key="quartz.jobStore.clusterCheckinInterval" value="1000" />
Thanks for any help PS. We're using 2.1.2.400 if it matters
Our configs
<quartz>
<add key="quartz.scheduler.instanceName" value="ServerScheduler" />
<add key="quartz.scheduler.instanceId" value="AUTO" />
<add key="quartz.threadPool.type" value="Quartz.Simpl.SimpleThreadPool, Quartz" />
<add key="quartz.threadPool.threadCount" value="10" />
<add key="quartz.threadPool.threadPriority" value="2" />
<add key="quartz.jobStore.misfireThreshold" value="60000" />
<add key="quartz.jobStore.clusterCheckinInterval" value="1000" />
<add key="quartz.jobStore.type" value="Quartz.Impl.AdoJobStore.JobStoreTX, Quartz" />
<add key="quartz.jobStore.useProperties" value="false" />
<add key="quartz.jobStore.dataSource" value="default" />
<add key="quartz.jobStore.tablePrefix" value="QRTZ_" />
<add key="quartz.jobStore.clustered" value="true" />
<add key="quartz.jobStore.lockHandler.type" value="Quartz.Impl.AdoJobStore.UpdateLockRowSemaphore, Quartz" />
<add key="quartz.dataSource.default.connectionString" value="Data Source=xyz..." />
<add key="quartz.dataSource.default.connectionStringName" value="RecDB" />
<add key="quartz.dataSource.default.provider" value="SqlServer-20" />
</quartz>
Code
var jobSilentDetail = CreateFutureJobDetail(new JobKey(JobName(shoppingListNotification.Id)),
typeof(JobShoppinglistNotification),
string.Format("Job bla bla"));
jobSilentDetail.JobDataMap["ShoppingListNotification"] = shoppingListNotification;
var startJobAt = DateTime.Now.AddSeconds(3);
SaveFutureJob(jobSilentDetail, startJobAt);
protected void SaveImmediateJob(IJobDetail jobDetail)
{
Scheduler.ScheduleJob(jobDetail, CreateImmediateTriggerFor(jobDetail));
}
protected void SaveFutureJob(IJobDetail jobDetail, DateTime startTime)
{
Scheduler.ScheduleJob(jobDetail, CreateFutureTriggerFor(jobDetail, startTime.ToUniversalTime()));
}
protected ITrigger CreateImmediateTriggerFor(IJobDetail jobDetail)
{
return CreateOneRunTriggerFor(jobDetail, QuartzJobType.Immediate, DateTime.Now);
}
protected ITrigger CreateFutureTriggerFor(IJobDetail jobdetail, DateTime startTime)
{
return CreateOneRunTriggerFor(jobdetail, QuartzJobType.Future, startTime);
}
private static ITrigger CreateOneRunTriggerFor(IJobDetail jobDetail, QuartzJobType quartzJobType, DateTime startTime)
{
var trigger = TriggerBuilder
.Create()
.WithIdentity(jobDetail.Key.Name, quartzJobType.ToString())
.WithSimpleSchedule()
.StartAt(startTime.ToUniversalTime())
.Build();
return trigger;
}