概述
背景:同一个JobKey对应的任务在同一集群下,同一时刻只有一台机器执行。
需求:使用Quartz同时触发集群多台机器同一JobKey对应的任务
效果:无论哪个机器得到的资源,它都要通过HTTP请求通知另外的实例去执行相应的方法。这样就达到了某个实例执行,又让其它没得到调度的实例执行了相应的方法。
可以考虑在定时任务的JobDataMap中增加一个字段"url"。该参数"url"可以像我这样配置
{ ....,
"url" : "10.10.0.11:80/dispatch;10.10.0.12:80/dispatch;10.10.0.13:80/dispatch" ,
"param":"{ param_ json }"
}
这样可以解析该参数后,将请求使用HTTP请求,转发到同一集群的其它机器上。
当前系统:定时任务Job中 调用 void business();
Http请求:Controller中调用Service调用 void business();
最后
以上就是爱笑西装为你收集整理的使用Quartz同时触发集群多台机器同一任务的全部内容,希望文章能够帮你解决使用Quartz同时触发集群多台机器同一任务所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复