水桶妖L小蛮妖 2016-07-03 19:33 采纳率: 100%
浏览 4022
已采纳

负载均衡下定时器任务怎么只执行一个,在不使用数据库的情况下

最近在做考核,经理问了一个如题目的问题,要求我不使用数据库,解决spring quartz定时器在负载均衡的环境下只运行行一个定时器任务。目前想到的方案,1、利用JAVA的输入输出,在数据库服务器上创建一个文件,用来控制由哪台服务器来运行定时器任务。2、直接利用数据库运行定时器任务,(这个有点顾虑就是担心并非所有的定时器任务都是执行对数据库的更新操作。本人菜鸟。)
希望来位大神帮忙解决一下,想很久了,没有想到别的办法。

  • 写回答

2条回答 默认 最新

  • 孤单胖南瓜_ 2016-07-04 18:20
    关注

    你的这两个方案明显是不满足经理要求的,
    1、“创建一个文件”,既然是负载均衡应用肯定不在同一个主机上,难道你创建网络文件吗。当然你可以使用zookeeper,创建一个结点之类的。
    2、利用数据库运行定时器任务,你们经理都说了不使用数据库。
    给你出个主意但不知道行不行,等应用启起来之后,向负载均衡发送一个启动quartz http请求, 负载会把这个请求发送到其中一个主机。
    这样就基本达到你的要求了只执行一个,但是不知道是不是你们经理想要回答。

    这的确是一个在开发中会遇到的实用的问题,如果还能实现动态切换那就更好了(当然使用zookeeper很容易做到)。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)
编辑
预览

报告相同问题?

悬赏问题

  • ¥15 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部