有两种策略来保证quartz只被执行一遍。
一个是自己在数据库中标志下,已经执行过的任务就不执行了。
一个是将quartz单独配置到一个应用里,和别的应用分开。
第一个是我自己想出来的,第二个是robbin提出的。
你可以把另外一台服务器上面的定时器干掉,目前我们多服务器部署的时候都只会在一台服务器部署带定时器的Java项目。如果不想这样子的话你可以去研究一下负载均衡看能不能实现你的这个需求了。基本上是Quartz。我见过所有的项目都是用的QuartzQuartz支持Cron表达式定义时间点也支持SimpleTrigger对应时间点,可以很精确的定义时间点。
Quartz支持集群,可以在多个服务器(连同一个数据库)自动分配到不同的服务器上执行。
Quartz支持多种错误处理形式(如错误后下次不执行、马上重新执行、下次继续执行等)
Quartz支持多种漏触发处理(如关机漏触发情况)
Quartz还有很多优点,同类框架基本和他没有可比性
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)