MyException - 我的异常网
当前位置:我的异常网» Java相关 » ()Spring中的定时任务有关问题(在线急等)

()Spring中的定时任务有关问题(在线急等)

www.MyException.Cn  网友分享于:2015-08-26  浏览:601次
(高分求教)Spring中的定时任务问题(在线急等)
最近在做一个项目的时候遇到一个这样的问题?
数据库的一个表中,有很多数据,这些数据又经常被读取。如果采用进入一个用户就打开一次,那么就会对表的损坏很大的影响。
要执行的功能如下:
每隔50分钟读取表的数据,并存放在servletContext()中(jsp的Application对象里)也就是加载到Servlet容器中,这样,用户访问的时候,读取的是服务器的内存数据,而不是从数据库中读取。

用struts2+spring2.0+hibernate3很容易就解决了读取数据的操作。通过struts2 的 getServletContext().setAttribut("abc",lst);很好就解决了。

第一种解决方法:请问:能不能在spring2任务调度中,每隔50钟执行一次。能的话,请问怎么解决?

第二种方法:采用java.unil.timer 的run()直接调用javax.servlet.servletContext 接口
但是总是报:java.lang.Nullexcption错。





------解决方案--------------------
用类似timer 的东西我觉得这里用不太好,timer一般不要用,我想你这里可能也还不需要用。

我说下我的想法,
对此表设一个版本号.
此版本号用Application对象存储,我们叫AppObj1.
每次启动的系统的使用,版本可定为1.0,比如AppObj1=1.0
然后
把数据读取到你定的另一个Application对象里,我们叫AppObj2,
比如 AppObj2=recordList.
AppObj2要补充一个属性,就是版本号,就是此时(启动)对应的AppObj1的值

然后系统在运行中
如果用户修改了表,就修改版本好。AppObj1=1.1
用户访问表的时候先对比AppObj2的版本号和AppObj1是不是相等,
如果不是就从取数据到AppObj2中并更新AppObj2的版本号为AppObj1。

仅供参考
------解决方案--------------------
ehcache框架


ehcache.xml

<!-- 视频服务器 -->
<cache name="VideoServer"
maxElementsInMemory="500"
eternal="false"
overflowToDisk="false"
timeToIdleSeconds="900"
timeToLiveSeconds="900"
memoryStoreEvictionPolicy="LRU">
</cache>
service类
public Map doGetServer_Cache(String serverID) {
CacheManager manager = CacheManager.getInstance();
Cache cache = manager.getCache("VideoServer");
Element ele = cache.get("VideoServer_cache"+serverID);
if(ele!=null){
return (Map)ele.getObjectValue();
}
Map server = videoServerDAO.findServerByID(serverID);
cache.put(new Element("VideoServer_cache"+serverID, server));
return server;
}

//大型网站使用,Hibernate内部也是使用这种缓冲技术
------解决方案--------------------
第一个问题,可以,spring有专门的定时执行功能,可以设置执行周期为50分钟
第二个问题,不推荐使用。
------解决方案--------------------
能不能在spring2任务调度中,每隔50钟执行一次。能的话,请问怎么解决? 

spring2的调度的配置非常简单,随便看一下spring2的中文参考手册很快就能配置出来,
至于在quartz中获取ServletContext,这个更简单,只需要你的quartz所执行的业务类实现ServletContextAware,这样ServletContext 会被注入进来,你就可以进行相应的操作!

文章评论

什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
10个调试和排错的小建议
10个调试和排错的小建议
一个程序员的时间管理
一个程序员的时间管理
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
2013年中国软件开发者薪资调查报告
2013年中国软件开发者薪资调查报告
老程序员的下场
老程序员的下场
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
旅行,写作,编程
旅行,写作,编程
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
那些争议最大的编程观点
那些争议最大的编程观点
漫画:程序员的工作
漫画:程序员的工作
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
Java程序员必看电影
Java程序员必看电影
程序员必看的十大电影
程序员必看的十大电影
2013年美国开发者薪资调查报告
2013年美国开发者薪资调查报告
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
每天工作4小时的程序员
每天工作4小时的程序员
如何成为一名黑客
如何成为一名黑客
我的丈夫是个程序员
我的丈夫是个程序员
程序员应该关注的一些事儿
程序员应该关注的一些事儿
程序员都该阅读的书
程序员都该阅读的书
鲜为人知的编程真相
鲜为人知的编程真相
编程语言是女人
编程语言是女人
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
 程序员的样子
程序员的样子
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
代码女神横空出世
代码女神横空出世
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
总结2014中国互联网十大段子
总结2014中国互联网十大段子
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
程序员的鄙视链
程序员的鄙视链
为什么程序员都是夜猫子
为什么程序员都是夜猫子
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
中美印日四国程序员比较
中美印日四国程序员比较
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
Google伦敦新总部 犹如星级庄园
Google伦敦新总部 犹如星级庄园
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有