Spring quartz在集群环境下解决方案网上有很多,大都是建立12张表,真正实现集群。如果你的定时任务不多、处理有快的话,那大可不必这么大费周折,我抱着这种心态,就开始了寻求轻巧的解决办法!!!
第一代:
绑定mac地址,指定服务器执行
第二代:
绑定mac地址+绑定context path 执行
以后随着时间的飞逝,可能还会推出几代已适应业务系统的增长,这里将第二代成果推荐给大家,欢迎拍砖探讨。
绑定mac这是手到擒来的事情,不赘述,着重介绍下获取context path的方法。
第一种办法:启动listener传值
第二种办法
Spring Quartz 定时任务 一种是在spring配置文件中配置做定时任务。一种是以servlet的形式做定时任务。
一般情况下我们在Action中用这种方式来获得ServletContext:
ServletContext context=ServletActionContext.getServletContext();
进而获得我们比较熟悉的request、response、session作用域。不过request、response、session这些作用域是项目启动后才能获取到的。在Quartz中不适用。
要想在Tomcat启动的时候获得文件的上下文是不能使用上面的方式,所以:
1、web.xml中的配置:
2、在web.xml加载的时候获得ServletContext:
这样在项目还没有完全启动的情况下就可以获取上下文了。