Solo  当前访客:5 登录 注册

喧哗博客-http://blog.xuahua.com

繁华过后的沉寂--技术经验分享
浏览次数: 100,921    文章总数: 91    评论总数: 3
标签:

spring3定时任务之定时任务管理(一) 有更新!

在web互联网时代,定时任务随处可见,做一个定时任务管理界面,由后端操作人员来控制可省不少事情,而且时间可动态变更。也可由开发人员根据业务需求手动动态变更时间。

现在提供一个简单的可用的定时任务管理。

定时任务把任务保存在数据库,也可保存在文件中。下面的例子为保存在服务器文件。

准备工作

1.定义定时任务--包括定时任务名称以及对应的执行方法类;此类任务保存在 taskClass.properties文件中。

2,定义定时任务运行的业务,包括定时任务名称,定时任务的分组,定时任务执行频率,开始执行时间;此类任务定义保存在task.properties文件中。

3,后端的管理操作界面有展示有定时任务名称,执行方法,定时任务操作有(增加,删除,修改,暂停)。

样例图片--喧哗-blog.xuahua.com

关键执行代码:


 @RequestMapping("/taskindex.shtml")
    public String index(Model model){
        try{
            Map<String,String > map= TaskClassPropertiesUtil.getTaskClass();
            model.addAttribute("selectClass",map);

        }catch (Exception e){

        }
        return "admin/task/taskindex";
    }
jsp  下载页面 http://file.xuahua.com/js/blog/taskindex.jsp


js  下载页面   http://file.xuahua.com/js/blog/taskindex.js


TaskClassPropertiesUtil类文件,关键代码


public static String pathUrl=TaskClassPropertiesUtil.class.getResource("/").getPath()+"taskClass.properties";
    public static Map<String ,String> getTaskClass() throws Exception {
        Map<String ,String> map=new HashMap<String ,String>();
            Properties properties =new Properties();
            InputStream in=new FileInputStream(pathUrl);
            BufferedReader bf = new BufferedReader(new  InputStreamReader(in));
            properties.load(bf);
            in.close();
            Enumeration enu=properties.keys();
            while(enu.hasMoreElements()){
                String key=enu.nextElement().toString();
                String value=properties.getProperty(key);
                map.put(key,value);
        
            }
           return  map;
    }

 taskClass.properties 示例下载 http://file.xuahua.com/blog/taskClass.properties

 后续的如何操作定时任务以及动态变更定时任务请见定时任务管理(二)


公告

喧哗博客--繁华过后的沉寂--技术经验分享^-^
Copyright (c) 2009-2020, b3log.org & hacpai.com