首先,我也没有做过什么分布式的任务调度框架,我只是这几天做定时任务,为了解决高可用的特性,弄了一个简化版的分布式任务调度。其实分布式任务调度很简单,说白了在单机上做的话,就需要利用lock或者锁了。而多服务器了之后,就需要提供一个分布式锁即可,但是这样会在每个方法里面去显式地去写出一段代码,例如我使用redis来实现的话。
这种,其实是重复的工作,因此直接考虑aop来做。
先放一段我想达到的效果
这样的形式就可以了。
1.首先得有注解才行
2.那么既然写了注解,就得有相应的aop才行
3.注意一下ISchduleLock这个接口
其实上面,我只用到了分布式锁的方法,而没有使用到释放锁的操作
那么如果你想使用的话,就可以写一个类,不管是redis还是zookeeper等等都可以,然后实现我这个接口,重写这两个方法即可。然后注入给spring容器即可。
最后我在把我的configuration贴出来
原文作者:IMHB;如有侵权,请联系管理员删除。