在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

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


    联系QQ:343886028 --加QQ群 145315854