Cluster环境下,配置Quartz job为集群模式后,配置示例如下,其中红色部分与集群模式相关。我使用的是quartz-all-1.6.0,spring-context-support-3.0.1。
1 <bean id="startQuertz" lazy-init="false" autowire="no" 2 class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> 3 <property name="triggers"> 4 <list> 5 <ref bean="jobTrigger" /> 6 </list> 7 </property> 8 <property name="dataSource" ref="dataSource" /> 9 <property name="transactionManager" ref="transactionManager" /> 10 <property name="quartzProperties"> 11 <props> 12 <prop key="org.quartz.scheduler.instanceName">DataScheduler</prop> 13 <prop key="org.quartz.scheduler.instanceId">AUTO</prop> 14 <prop key="org.quartz.threadPool.class">org.quartz.simpl.SimpleThreadPool</prop> 15 <prop key="org.quartz.threadPool.threadCount">5</prop> 16 <prop key="org.quartz.threadPool.threadPriority">5</prop> 17 <prop key="org.quartz.jobStore.misfireThreshold">60000</prop> 18 <prop key="org.quartz.jobStore.class">org.springframework.scheduling.quartz.LocalDataSourceJobStore</prop> 19 <prop key="org.quartz.jobStore.tablePrefix">QRTZ_</prop> 20 <prop key="org.quartz.jobStore.isClustered">true</prop> 21 <prop key="org.quartz.jobStore.useProperties">false </prop> 22 </props> 23 </property> 24 </bean>
但系统运行Quartz job抛出如下的错误信息:
1 Caused by: org.quartz.JobPersistenceException: Couldn't store job: Unable to serialize JobDataMap for insertion into database because the value of property 'methodInvoker' is not serializable: org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean [See nested exception: java.io.NotSerializableException: Unable to serialize JobDataMap for insertion into database because the value of property 'methodInvoker' is not serializable: org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean] 2 at org.quartz.impl.jdbcjobstore.JobStoreSupport.storeJob(JobStoreSupport.java:1041) 3 at org.quartz.impl.jdbcjobstore.JobStoreSupport$4.execute(JobStoreSupport.java:1011) 4 at org.quartz.impl.jdbcjobstore.JobStoreSupport$39.execute(JobStoreSupport.java:3590) 5 at org.quartz.impl.jdbcjobstore.JobStoreCMT.executeInLock(JobStoreCMT.java:244) 6 at org.quartz.impl.jdbcjobstore.JobStoreSupport.executeInLock(JobStoreSupport.java:3586) 7 at org.quartz.impl.jdbcjobstore.JobStoreSupport.storeJob(JobStoreSupport.java:1007) 8 at org.quartz.core.QuartzScheduler.addJob(QuartzScheduler.java:785) 9 at org.quartz.impl.StdScheduler.addJob(StdScheduler.java:278) 10 at org.springframework.scheduling.quartz.SchedulerAccessor.addJobToScheduler(SchedulerAccessor.java:311) 11 at org.springframework.scheduling.quartz.SchedulerAccessor.addTriggerToScheduler(SchedulerAccessor.java:334) 12 at org.springframework.scheduling.quartz.SchedulerAccessor.registerJobsAndTriggers(SchedulerAccessor.java:271) 13 at org.springframework.scheduling.quartz.SchedulerFactoryBean.afterPropertiesSet(SchedulerFactoryBean.java:513)
网上google一番,发现这个是Spring的一个Bug,详情参见:http://forum.springsource.org/showthread.php?31820-Quartz-and-JDBCJobStore,按照论坛中的方案修改Spring包中的2个java文件后解决。
其他的注意事项
1. Quartz job类要实现java.io.Serializable接口,不然还是会报NotSerializableException的异常。
2. Quartz job类的属性也要实现java.io.Serializable接口。
参考
相关推荐
实现把job持久化数据库,里面有具体的说明文档 Quartz 1 1 通过quartz创建持久化定时...1.3.1 实现org.quartz.Job接口 6 1.3.2 把以上job持久化到数据库中 6 1.4 启动job所需条件 6 1.4.1 在web.xml中加入如下监听 6
Quartz Job Scheduling Framework 中文版 V1.0.0.rar。
Quartz Job Scheduling Framework.chm
Quartz Job Scheduling Framework 中文版 十分感谢原作者
Quartz Job Scheduling Framework 中文版 chm版
Quartz 在开源任务调度框架中的翘首,它提供了强大任务调度机制,难能可贵的是它同时保持了使用的简单性。Quartz 允许开发人员灵活地定义触发器的调度时间表,并可以对触发器和任务进行关联映射。
把本人博客上零零散散,顺序错乱的各篇译章汇集成册,做成了一个 《Quartz Job Scheduling Framework 中文版.chm 》文件与各位分享,以方便大家的阅读。另外,每篇译章都有到达我的博客上所对应页面的链接,所以有...
Quartz Job Scheduling Framework 中文版 V0.9.5 API帮助文档
任务、 Unix/Linux 下的 Cron ,但 Quartz 可以把排程控制的更精细。也许大多数人听说 Quartz 是在学习或使用 Spring 的时 候,也就是 Spring 整合了 Quartz。而我也不例外,同样是在春天里得悉了这块石英。 当初...
Spring_MongoDb_Quartz_Cluster #这在mvn中央存储库中不可用。 com.novemberain quartz-mongodb 2.0.0-rc2 #然后,您必须在侧边项目标签crystal quartz-mongodb
本人译作,在先前那个 Quartz Job Scheduling Framework_V1.0.0.CHM 文件的基础上做成的 PDF 文件,方便大家阅读。
Quartz 是一个完全由java编写的开源作业调度框架,本文档是Quartz 的接口帮助文档,涵盖了Quartz 使用中所需要的接口。
非常好的,非常实用的对于QUARTZ使用的书的中文翻译,希望在工作中使用QUARTZ的同行和朋友们,非常建议学习一下这本书,很详细内容也能正常观看,绝不是骗积分,谢谢。
Quartz Job Scheduling Framework 中 文 版 Chuck Cavaness 著 Unmi(隔叶黄莺) 译
在网上扒拉下来的spring3和quartz1.8.6版本集成的代码,貌似spring4和quartz1.8.6就集成不了了,得升到quartz 2.x
最近公司项目上线,需要把app部署在多台服务器上,但只能让其中一台服务器的job执行,一台服务器挂了,另一台还能继续执行job,通过网上查找资料,都是java工程的方式,不好部署并测试,经过二天辛苦整合,终于整理成...
博文链接:https://adamed.iteye.com/blog/135883
Quartz Job定时任务.txt 网盘永久链接 为方便quartz job 学习爱好者而上传
spring多个定时任务quartz配置