加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

定时任务在服务器集群中的实现问题

(2015-05-02 22:16:13)
标签:

集群

定时

java

quartz

crontab

分类: 软件开发
服务器集群中,定时任务设计需要解决的问题:
1、如果集群中每台机器都启动定时任务,容易造成数据重复处理的问题。
2、如果采用定时任务开关的方式,只一台机器的开关on,其他机器的开关off,可以避免数据重复处理的问题,但是存在单点故障的问题。

解决方式有:
1、任务从数据库中读,保证只有一台机器可以抢到任务。
2、将任务的定时触发模块、任务的执行模块分离。任务的定时触发模块每台机器都允许触发任务,但是任务的执行模块,只要收到一个执行任务,那么下一个执行任务就被忽略掉。任务开始执行设置running = true,任务执行完毕设置running = false,当running
为ture时候,下一个任务不允许执行。需要注意的是,一定要在finally中加上running = false,要不然任务异常的话,下一次任务永远不会再执行了。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有