Tomcat集群Spring+Quartz多次执行解决方案记录
2013-12-05 09:54
483 查看
由于在集群环境下定时器会出现并发和重复执行的问题,我再三考虑记录有5
一、把定时器模块单独拿出来放到一台tomcat或者新建一个Java工程手动启动定时器,这样定时器的任务就可以从原来的集群中抽离开来,原来的tomcat集群不再执行定时器任务,而是交给定时器应用单独执行。
二、不从集群当中抽离定时器,而是采用另外一个应用统一调度,每次只有一台tomcat执行定时器任务。
三、 采用数据库来记录每台tomcat定时器执行的状态,执行的状态可以采用当前执行的时间点来区分,当定时器执行的时候首先应该把当前时间点记录到数据库中 防止另外一台机器重复执行,当另外一台tomcat上面的定时器执行的时候首先会比较当前时间点是否和数据库记录的时间点之间的时间差大于定时器执行的时 间间隔,执行的状态还可以采用其他方式进行区分
四、采用EJB充当业务层,采用分布式开发,定时器放到EJB上面执行。http://www.theserverside.com/news/1377023/Using-the-Quartz-Enterprise-Scheduler-in-J2EE
五、tomcat+jboos,定时器部署到tomcat上面,定时器要执行的业务逻辑放在jboss上面采用会话bean+实体bean,这种可以用在jboss集群环境下
一、把定时器模块单独拿出来放到一台tomcat或者新建一个Java工程手动启动定时器,这样定时器的任务就可以从原来的集群中抽离开来,原来的tomcat集群不再执行定时器任务,而是交给定时器应用单独执行。
二、不从集群当中抽离定时器,而是采用另外一个应用统一调度,每次只有一台tomcat执行定时器任务。
三、 采用数据库来记录每台tomcat定时器执行的状态,执行的状态可以采用当前执行的时间点来区分,当定时器执行的时候首先应该把当前时间点记录到数据库中 防止另外一台机器重复执行,当另外一台tomcat上面的定时器执行的时候首先会比较当前时间点是否和数据库记录的时间点之间的时间差大于定时器执行的时 间间隔,执行的状态还可以采用其他方式进行区分
四、采用EJB充当业务层,采用分布式开发,定时器放到EJB上面执行。http://www.theserverside.com/news/1377023/Using-the-Quartz-Enterprise-Scheduler-in-J2EE
五、tomcat+jboos,定时器部署到tomcat上面,定时器要执行的业务逻辑放在jboss上面采用会话bean+实体bean,这种可以用在jboss集群环境下
相关文章推荐
- 关于Tomcat,你必须知道的那些事儿
- 关于Tomcat,你必须知道的那些事儿
- Tomcat的两种安装方式解析
- Tomcat的两种安装方式解析
- TOMCAT目录文件夹作用
- TOMCAT目录文件夹作用
- 2、solr与tomcat及中文分词的整合
- An internal error occurred during: "Launching spring on Tomcat 6.x".
- tomcat关闭时进程未退出
- tomcat命令提示符和两种tomcat安装方式
- tomcat默认访问项目
- 在window+tomcat7+jdk7下配置solr4.5
- 当装了两个tomcat后,如何修改tomcat端口
- Tomcat之连接器
- Tomcat访问日志
- tomcat部署web项目的方法
- tomcat get提交乱码
- Ubuntu下修改tomcat6默认的8080端口
- mysql tomcat 经常被异常停掉 无任何错误日志产生 原因
- 《深入理解java虚拟机》学习笔记8——Tomcat类加载器体系结构