使用mysql进行Quartz JDBCJobStore配置

时间:2014-04-01 07:37:34

标签: java quartz-scheduler

我是石英新手。我用以下配置的mysql配置了jdbcjobstore。 如果我通过java创建一个调度程序,它的工作正常。

# Main Quartz configuration
org.quartz.scheduler.skipUpdateCheck = true
org.quartz.scheduler.instanceName = DatabaseClusteredScheduler
org.quartz.scheduler.instanceId = AUTO
org.quartz.scheduler.jobFactory.class = org.quartz.simpl.SimpleJobFactory
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate
org.quartz.jobStore.dataSource = quartzDataSource
org.quartz.jobStore.tablePrefix = QRTZ_
org.quartz.jobStore.isClustered = true
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 5

# JobStore: JDBC jobStoreTX
org.quartz.dataSource.quartzDataSource.driver = com.mysql.jdbc.Driver
org.quartz.dataSource.quartzDataSource.URL = jdbc:mysql://192.168.1.2:3306/fatdb
org.quartz.dataSource.quartzDataSource.user = root
org.quartz.dataSource.quartzDataSource.password = root
org.quartz.dataSource.quartzDataSource.maxConnections = 8

我的问题是,可以直接在特定的Quartz表上放置条目(如调度程序,作业和其他信息),而无需编写程序。

例如 如果我将时间和适当的调度程序详细信息插入到石英表中,并且如果我使用上面的配置调用监听器,那么我将从用户获得特定时间,是否有效?

如果它可以作为表,我需要配置哪些字段。

2 个答案:

答案 0 :(得分:4)

您不应该通过SQL直接写入quartz数据库。

Quartz Best Practices

  


JDBC JobStore    
不要直接写入Quartz表    
   
将调度数据直接写入数据库(通过SQL)而不是    
使用调度API:    
   
数据损坏的结果(删除数据,加扰数据)    在触发器的起火时间到来时,工作中的结果看似“消失”而不执行    
当触发器的触发时间到来时,作业不执行“只是坐在那里”    
可能导致:死锁    
其他奇怪的问题和数据损坏

答案 1 :(得分:0)

我想通了,但它确实有效。我只将值插入3个表中,并且它工作得很好。您需要配置的表:[QRTZ_JOB_DETAILS],[QRTZ_TRIGGERS]和[QRTZ_CRON_TRIGGERS]。