如何在 AdoJobStore 中启动 run/trigger 服务上的 run/trigger 旧计划作业
How to run/trigger old schdeuled jobs on windows service start in AdoJobStore
我有一个系统,我在其中安排一些作业并在 windows 服务中的某个特定时间触发 运行。由于我的 windows 服务可以出于 o0f 原因重新启动,我想在它们被安排时触发已经安排的作业,所以我使用 AdoJobStore 因为它保留了 job/trigger 信息。我在想在调度程序启动时它会加载未完成的作业并触发它。但它不能
我已经使用以下设置配置了一个 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" />
调度开始的代码如下我的 windows 开始 class
StdSchedulerFactory factory = new StdSchedulerFactory();
MyQuartzScheduler = await factory.GetScheduler();
await MyQuartzScheduler.Start();
我认为我有计划的未来工作以及谁的条目保存在 quartznet 数据库中会在开始计划后触发,但它没有。
我需要添加任何其他设置或代码吗?
看起来问题是由一种配置设置引起的
似乎以下配置设置是罪魁祸首
<add key="quartz.jobStore.driverDelegateType" value="Quartz.Impl.AdoJobStore.SqlServerDelegate, Quartz" />
改为
<add key="quartz.jobStore.driverDelegateType" value="Quartz.Impl.AdoJobStore.StdAdoDelegate, Quartz" />
它开始工作了。
有没有quartz.net有经验的人可以确认错误
我有一个系统,我在其中安排一些作业并在 windows 服务中的某个特定时间触发 运行。由于我的 windows 服务可以出于 o0f 原因重新启动,我想在它们被安排时触发已经安排的作业,所以我使用 AdoJobStore 因为它保留了 job/trigger 信息。我在想在调度程序启动时它会加载未完成的作业并触发它。但它不能 我已经使用以下设置配置了一个 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" />
调度开始的代码如下我的 windows 开始 class
StdSchedulerFactory factory = new StdSchedulerFactory();
MyQuartzScheduler = await factory.GetScheduler();
await MyQuartzScheduler.Start();
我认为我有计划的未来工作以及谁的条目保存在 quartznet 数据库中会在开始计划后触发,但它没有。 我需要添加任何其他设置或代码吗?
看起来问题是由一种配置设置引起的
似乎以下配置设置是罪魁祸首
<add key="quartz.jobStore.driverDelegateType" value="Quartz.Impl.AdoJobStore.SqlServerDelegate, Quartz" />
改为
<add key="quartz.jobStore.driverDelegateType" value="Quartz.Impl.AdoJobStore.StdAdoDelegate, Quartz" />
它开始工作了。 有没有quartz.net有经验的人可以确认错误