知识点链接

别人写的非常好的,我觉得可以收集在一起方便以后查阅

(1) log4j使用教程 http://www.codeceo.com/article/log4j-usage.html

(2) quartz定时任务:quartz jar包在2.0之后相关的API使用会有不同,下面是使用2.0的jar,相关jar包可以在quartz中找到

/*
 * 1、Job: 表示一个工作,要执行的具体内容。此接口中只有一个方法  void execute(JobExecutionContext context)
 * 2、JobDetail: 表示一个具体的可执行的调度程序,Job是这个可执行程调度程序所要执行的内容,另外JobDetail还包含了这个任务调度的方案和策略。
 * 3、Trigger: 代表一个调度参数的配置,什么时候去调。
 * 4、Scheduler:代表一个调度容器,一个调度容器中可以注册多个JobDetail和Trigger。当Trigger与JobDetail组合,就可以被Scheduler容器调度了。
*/
public class MyJob implements Job{
    @Override
    public void execute(JobExecutionContext arg0) throws JobExecutionException {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS"); 
        System.out.println(sdf.format(new Date())); 
    }  
}


public class SchedulerTest { 
    public static void main(String[] args) { 
         //通过schedulerFactory获取一个调度器  
        SchedulerFactory schedulerfactory=new StdSchedulerFactory();  
        Scheduler scheduler=null;  
        try{  
//       通过schedulerFactory获取一个调度器  
            scheduler=schedulerfactory.getScheduler();                
//        创建jobDetail实例,绑定Job实现类  
//        指明job的名称,所在组的名称,以及绑定job类  
            JobDetail job=JobBuilder.newJob(MyJob.class).withIdentity("job1", "jgroup1").build();  
                       
//        定义调度触发规则  
              
//       使用simpleTrigger规则  
/*         Trigger trigger=TriggerBuilder.newTrigger().withIdentity("simpleTrigger", "triggerGroup").withSchedule(SimpleScheduleBuilder.repeatSecondlyForever(1).withRepeatCount(8)).startNow().build();  
      使用cornTrigger规则  每2分钟执行一次(在该分钟的第15秒) */
               Trigger trigger=TriggerBuilder.newTrigger().withIdentity("simpleTrigger", "triggerGroup").withSchedule(CronScheduleBuilder.cronSchedule("15 0/2 * * * ?")).startNow().build();   
//             输出时间为:2016-03-05 10:12:15 027
//                        2016-03-05 10:14:15 081  ......              
//        把作业和触发器注册到任务调度中  
            scheduler.scheduleJob(job, trigger);               
//        启动调度  
            scheduler.start();               
        }catch(Exception e){  
            e.printStackTrace();  
        }  
    } 
}
原文地址:https://www.cnblogs.com/myseries/p/5203276.html