开发者社区> 问答> 正文

spring + quartz 动态添加job的问题

产品提了一个可以动态添加报警服务的需求,之前的报警任务都是配置在spring的配置文件中写死的,现在要求可以动态添加、修改、删除,这几天在网上查了一下 spring 3.1 (及以上)+ quartz 2.0(以上)版本 可以支持动态添加,入库(服务重启后可以从数据库中读取任务) , 但是遇到一个问题,我们的服务是同时部署在2台服务器上的,为了保持负载均衡,这样就导致在动态添加job的时候 就不能确定请求落在哪台服务器上,导致了一个不一致的问题,而且如果服务重启,2台服务器同时从数据库中读取任务,就导致任务多次执行的问题,大家有没有什么好的方法解决这个问题

展开
收起
a123456678 2016-03-17 16:29:09 2707 0
1 条回答
写回答
取消 提交回答
  • quartz有他的持久化的方案的吧,看起来有点复杂(懒得大改),所以自己参考资料写了一个简单的,根据数据库锁保证只有同一时间只有一台服务器跑(多台服务器时间不一致那就可能会跑多次,但不会影响业务),加了两张表一张日志,一张job表

    支持手动加载(作用不大...),手动运行(感觉唯一有价值的)

    2019-07-17 19:05:38
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧 立即下载
微服务架构模式与原理Spring Cloud开发实战 立即下载
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库 立即下载