Tomcat集群Spring+Quartz多次执行解决方案记录
2023-09-27 14:21:33 时间
由于在集群环境下定时器会出现并发和重复执行的问题,我再三考虑记录有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集群环境下
相关文章
- spring boot ajax post 前后端
- Spring Data @Repository 的分页查询
- Spring HttpInvoker 从实战到源码追溯
- 又一款接私活神器!Spring Boot + Vue 通用后台管理系统,真香!!
- 终于!Spring Cloud 2021 正式发布,一大波更新,看完我彻底躺平了。。
- Spring Boot 中的 Tomcat 是如何启动的?
- IntelliJ+Maven+Spring+Tomcat项目搭建(MAC)
- [Spring]支持注解的Spring调度器
- Spring Boot 内嵌容器 Tomcat / Undertow / Jetty 优雅停机实现
- Spring 实现数据库读写分离(转)
- java spring-boot使用tomcat镜像部署报错Name [handlerExceptionResolver] is not bound in this Context.
- Jeesite增加spring-data-redis缓存功能以及相关配置
- spring boot controller设置 @Transactional 不回滚的解决办法
- Nginx+Tomcat搭建集群,Spring Session+Redis实现Session共享
- Java大数据开发工程师__Spring学习笔记(待更新)
- Spring Boot 整合Mybatis非starter时,mapper一直无法注入解决
- tomcat 7下spring 4.x mvc集成websocket以及sockjs完全参考指南(含nginx/https支持)
- Servlet/Tomcat/ Spring 之间的关系