别人写的非常好的,我觉得可以收集在一起方便以后查阅
(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(); } } }