最佳实践:利用Quartz实现任务调度的集群

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

创建测试job

public class TestJobBus1 implements IJob{

private static Log log=LogFactory.getLog(TestJobBus1.class);

/**

*TEST

*/

public void executeInternal(){

try {

System.out.println("-------------TestJobBus1

start-------------"+ InetAddress.getLocalHost());

} catch (UnknownHostException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

3.4.配置Quartz 使用集群

3.4.1.配置节点的quartz.properties 文件

org.quartz.scheduler.instanceName = DefaultQuartzScheduler

org.quartz.scheduler.instanceId = AUTO

#org.quartz.scheduler.rmi.export = false

#org.quartz.scheduler.rmi.proxy = false

#org.quartz.scheduler.wrapJobExecutionInUserTransaction = false

#==================================================================== ========

# Configure ThreadPool

#==================================================================== ========

#org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool

#org.quartz.threadPool.threadCount = 10

#org.quartz.threadPool.threadPriority = 5

#org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializing Thread = true

#==================================================================== ========

# Configure JobStore

#==================================================================== ========

org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX org.quartz.jobStore.driverDelegateClass =

org.quartz.impl.jdbcjobstore.StdJDBCDelegate

#org.quartz.impl.jdbcjobstore.oracle.OracleDelegate

org.quartz.jobStore.misfireThreshold = 60000

eProperties = false

org.quartz.jobStore.tablePrefix = QRTZ_

#org.quartz.jobStore.dataSource = myDS

value="applicationContext" />

class="org.springframework.scheduling.quartz.CronTriggerBean">

class="com.grgbanking.view.scheduling.MethodInvokingJobDetailFactoryB ean">

value="executeInternal">

class="com.grgbanking.view.scheduling.TestJobBus1">

dataSource:项目中用到的数据源,里面包含了quartz用到的12张数据库表;

applicationContextSchedulerContextKey:是org.springframework.scheduling.quartz.SchedulerFactoryBean这个类中把spring上下文以key/value的方式存放在了quartz的上下文中了,可以用applicationContextSchedulerContextKey所定义的key得到对应的spring上下文;

configLocation:用于指明quartz的配置文件的位置

关于Job配置,这里有两点需要注意MethodInvokingJobDetailFactoryBean

在这里使用网上牛人修改后的frameworkx.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean (此案例我改包名为:com.grgbanking.view.scheduling),此类在网上可以下载,直接使用org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean 会报java.io.NotSerializableException异常。

shouldRecover

相关文档
最新文档