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

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

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

  • 写回答

2条回答 默认 最新

  • 孤单胖南瓜_ 2016-07-05 02:20
    关注

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

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

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

报告相同问题?

悬赏问题

  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥15 绘制多分类任务的roc曲线时只画出了一类的roc,其它的auc显示为nan
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?