quartz及集群
来源:互联网 发布:linux应用放到哪里 编辑:程序博客网 时间:2024/06/11 18:10
准备工作:下载quartz1.7.3完整包,解压出来包含数据库表生成脚本,可按目录选择所需数据库
使用Spring+Quartz实现集群(实现的demo中使用了spring2.5+quartz1.7.3)。需要修复一个bug,步骤如网上流行的处理方法,有两种方式
demo中使用了其中一种,添加两个文件BeanInvokingJobDetailFactoryBean.java和MethodInvokingJobDetailFactoryBean.java,这个作用于
代替原来的org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean类(网上搜索可下载),因为这个不支持序列化到持久化数据库中,
配置文件修改为:
=========================================================================================
<bean id="dailyBillJobDetail" class="com.autelan.auteview.lib.util.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="dailyBillJob"/>
<property name="targetMethod" value="execute"/>
<property name="shouldRecover" value="true"/>
</bean>
===========================================================================================
接下来是实现执行操作任务类:这个类得实现序列化接口:
============================================================================================
public class DailyBillJob implements Serializable{
private static int counter = 0;
private static final long serialVersionUID = 122323233244334343L;
//private static final Logger logger = (Logger) LogFactory.getLog(DailyBillJob.class);
protected void execute(){
// public void execute(){
long ms = System.currentTimeMillis();
System.out.println("\t\t" + new Date(ms));
System.out.println("(" + counter++ + ")");
}
}
============================================================================================
再这配置好属性文件xxx.properties(存放src目录下):
这个文件主要实现:集群共享数据库信息配置以及线程池
配置如下:
===========================================================================================
#=================================
#Configure Main Scheduler Properties
#=================================
org.quartz.scheduler.instanceName = quartzScheduler
org.quartz.scheduler.instanceId = AUTO
#==============================================================
#Configure JobStore
#==============================================================
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate
org.quartz.jobStore.tablePrefix = QRTZ_
org.quartz.jobStore.isClustered = true
org.quartz.jobStore.clusterCheckinInterval = 20000
org.quartz.jobStore.dataSource = myDS
#==============================================================
#Configure DataSource
#==============================================================
org.quartz.dataSource.myDS.driver = sun.jdbc.odbc.JdbcOdbcDriver
org.quartz.dataSource.myDS.URL = jdbc:sqlserver://127.0.0.1:1433;SelectMethod=cursor;useUnicode=true;characterEncoding=UTF-8;DatabaseName=myquartz_db
#org.quartz.dataSource.myDS.URL = jdbc:sqlserver://127.0.0.1:1433;DatabaseName=jh_baidu_push
org.quartz.dataSource.myDS.user = sa
org.quartz.dataSource.myDS.password = test
org.quartz.dataSource.myDS.maxConnections = 30
#org.quartz.dataSource.myDS.validationQuery=select 0 from dual
#==============================================================
#Configure ThreadPool
#==============================================================
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 10
org.quartz.threadPool.threadPriority = 5
org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread =true
=======================================================================================================
最后就是现在执行配置化好的东西:
建立main函数主类
基本实现如下:
====================================================================
public class main_test {
public static void main(String[] args)
{
System.out.println("Test start.");
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
//如果配置文件中将startQuertz bean的lazy-init设置为false 则不用实例化
//context.getBean("startQuertz");
System.out.print("Test end.");
}
}
====================================================================
至此基本完成!
- quartz及集群
- Quartz集群实战及原理解析
- Quartz集群原理及配置应用
- Quartz集群原理及配置应用
- Quartz集群原理及配置应用
- Quartz集群原理及配置应用
- Quartz集群原理及配置应用
- quartz 集群
- quartz集群
- quartz集群
- quartz集群
- quartz集群
- quartz集群
- quartz集群调度机制调研及源码分析
- quartz集群调度机制调研及源码分析
- quartz集群调度机制调研及源码分析
- quartz集群调度机制调研及源码分析
- quartz集群调度机制调研及源码分析
- 纯粹的 K12 精髓:从马列主义角度分析如何教孩子看图写话
- Arcgis for android Error inflating class com.esri.android.map.MapView
- uva 1374 Power Calculus
- 卸载win10应用
- sizeof总结
- quartz及集群
- css学习心得
- 很高兴的通知大家微信PC版支持公众平台支持oauth2身份认证了
- 《一起学》系列2:C++面向对象
- 从1开始学ios开发
- 解决:Activity not started, its current task has been brought to the front
- Eclipse 增加打开文件路径功能
- 学习 java netty (三) -- Channel
- Git SSH Key 生成步骤