如何使用Quartz.NET在数据库上插入JOB / TRIGGER?

时间:2012-09-21 13:12:18

标签: c# quartz-scheduler quartz.net

我使用Quart.NET(http://quartznet.sourceforge.net/)来调度我的工作。 这非常有效,我可以运行创建作业并以编程方式触发,但我想使用数据库来存储和创建新的触发器。

quartz.config 更改后的文件如下:

  

quartz.jobStore.type = Quartz.Impl.AdoJobStore.JobStoreTX,Quartz   quartz.jobStore.driverDelegateType = Quartz.Impl.AdoJobStore.OracleDelegate,Quartz   quartz.jobStore.tablePrefix = QRTZ_   quartz.jobStore.dataSource = myDS   quartz.dataSource.myDS.connectionString = * 我的oracle连接字符串 * ***   quartz.dataSource.myDS.provider = OracleODP-20   quartz.jobStore.useProperties = true

我正在使用最新稳定版Quartz.NET的解决方案示例是2.0.1,名为 Quartz.Server.2010 ,项目正常播放并执行 SELECT 在表格中每15秒(或多或少),但我如何在石英表中 INSERT 数据?

我的数据库已使用脚本 tables_oracle.sql

进行配置

我不会在表中手动执行 INSERT ,因为数据库的架构石英非常困难。

我有一个其他项目WEB,我将用它来安排新的工作,这个项目将在表格中插入数据,我的项目服务器Quartz.Server.2010将被执行。

我可以使用方法CronExpression每1分钟安排一次作业吗?如下所示:

  

Quartz.CronExpression cron = new Quartz.CronExpression(“0 0/1 * 1/1 *?*”);

但是我想把它放在数据库中,由石英服务器使用,不要在我的web项目中运行。

谢谢朋友们,

1 个答案:

答案 0 :(得分:3)

您将Web服务器配置为使用与Quartz Server相同的设置,并以相同的方式初始化调度程序,但实际上并未启动调度程序(否则作业将开始在Web服务器上运行)。

使用API​​创建作业时,请确保记得调用.StoreDurably()

有关语法的详细信息,请参阅我对this SO question的回答。