我有一个系统,我正在安排一些工作,并触发在Windows服务中的某个特定时间运行。因为我的Windows服务可以重新启动数量o0f原因我想在他们安排的时候触发已安排的工作,所以我使用AdoJobStore,因为它保留了作业/触发器信息。我在调度程序启动时正在考虑它将加载未完成的作业并将其激活。但它不能 我已经使用以下设置配置了Adojobstore
<add key="quartz.scheduler.instanceName" value="DBScheduler" />
<add key="quartz.threadPool.type" value="Quartz.Simpl.SimpleThreadPool, Quartz" />
<add key="quartz.threadPool.threadCount" value="100" />
<add key="quartz.threadPool.threadPriority" value="2" />
<add key="quartz.scheduler.dbFailureRetryInterval" value="6000000000" />
<add key="quartz.jobStore.driverDelegateType" value="Quartz.Impl.AdoJobStore.SqlServerDelegate, Quartz" />
<add key="quartz.jobStore.tablePrefix" value="QRTZ_" />
<add key="quartz.jobStore.misfireThreshold" value="600000" />
<add key="quartz.jobStore.type" value="Quartz.Impl.AdoJobStore.JobStoreTX, Quartz" />
<add key="quartz.jobStore.dataSource" value="myDS" />
<add key="quartz.dataSource.myDS.connectionString" value="Server=localhost;Port=3306;database=quartznet;Uid=root;pwd=root;allow user variables=true;CharSet=utf8;" />
<add key="quartz.dataSource.myDS.provider" value="MySql" />
<add key="quartz.serializer.type" value="binary" />
schdeuling开始的代码看起来像是在我的Windows启动课程
StdSchedulerFactory factory = new StdSchedulerFactory();
MyQuartzScheduler = await factory.GetScheduler();
await MyQuartzScheduler.Start();
我认为我的日程安排以及谁的条目保存在quartznet数据库中的未来工作将在启动计划后触发,但事实并非如此。 我需要添加任何其他设置或代码吗?
答案 0 :(得分:0)
看起来像问题是由于一个配置设置
以下配置设置是罪魁祸首
<add key="quartz.jobStore.driverDelegateType" value="Quartz.Impl.AdoJobStore.SqlServerDelegate, Quartz" />
将其更改为
<add key="quartz.jobStore.driverDelegateType" value="Quartz.Impl.AdoJobStore.StdAdoDelegate, Quartz" />
它开始工作了。 某些quartz.net体验者可以确认错误