在数据库中改job的参数 然后load回去, 这不是好的办法。
应该在Quartz中更改job参数, 然后让Quartz自己保存到数据库中。
更改办法是调用 scheduler.AddJob(jobDetail, true); //true 会覆盖相同jobkey的job
如果你只想改调用时间, 也就是要重新schedule job
要用 scheduler.RescheduleJob(new TriggerKey(triggerName, triggerGroup), newTrigger)
newTrigger 会覆盖之前的Trigger。 job会在新Trigger指定的时间去运行。
所有这些都不需要直接去修改数据库。你如果换了其他jobStore, 比如xml的, 这种方法也能支持。
我看到它源码介绍,能将job存储到数据库中,并给了数据库建库的sql,请问这个功能怎么使用?需要做一些配置
@t-h: 官方文档 http://quartznet.sourceforge.net/tutorial/lesson_9.html
简单的说将quartz.config配置如下
quartz.jobStore.type = Quartz.Impl.AdoJobStore.JobStoreTX, Quartz
quartz.jobStore.driverDelegateType = Quartz.Impl.AdoJobStore.StdAdoDelegate, Quartz
quartz.jobStore.tablePrefix = QRTZ_
quartz.jobStore.dataSource=default
quartz.dataSource.default.connectionStringName=MyDbConnection
quartz.dataSource.default.provider=SqlServer-20
以上配置用了 SqlServer 做jobStore, 数据库connectionString名字是MyDbConnection。 你用Quartz附带的sql建好数据库, 然后在MyDbConnection这个connectionString里填好数据库连接的参数, 这样就能用了。