1.引入定时任务jar
/* --- 定期处理 --- */
// https://mvnrepository.com/artifact/org.quartz-scheduler/quartz
compile group: ‘org.quartz-scheduler‘, name: ‘quartz‘, version: ‘2.3.1‘
// https://mvnrepository.com/artifact/org.quartz-scheduler/quartz-jobs
compile group: ‘org.quartz-scheduler‘, name: ‘quartz-jobs‘, version: ‘2.3.1‘
/* --- 定期处理 END --- */
@Component @WebListener public class DeleteOldDataListener implements ServletContextListener { private static Logger logger = LoggerFactory.getLogger(DeleteOldDataListener.class); private static final String LOG001 = " 定时任务处理程序启动"; private static final String LOG002 = "定时任务处理程序启动失败"; private static final String DELETE_OLD_DATA_JOB = "deleteOldDataJob"; private static final String DELETE_OLD_DATA_GROUP = "deleteOldDataJobGroup"; private static final String DELETE_OLD_DATA_TRIGGER = "deleteOldDataJobTrigger"; @Override public void contextInitialized(ServletContextEvent sce) { try { // 取得计划日程对象 Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler(); setDeleteLastMonthRecordJob(scheduler); scheduler.start(); logger.info(“成功”); } catch (SchedulerException e) { logger.error(“失败”, e); } } private void setDeleteLastMonthRecordJob(Scheduler scheduler) throws SchedulerException { //设置触发类 JobDetail deleteOldDataJobDetail = JobBuilder.newJob(JobDeleteOldData.class) .withIdentity(DELETE_OLD_DATA_JOB, DELETE_OLD_DATA_GROUP).build(); //触发时间 CronScheduleBuilder deleteOldDataScheduleBuilder = CronScheduleBuilder.dailyAtHourAndMinute(00, 10); //设置触发器 Trigger deleteOldDataJobTrigger = TriggerBuilder.newTrigger() .withIdentity(DELETE_OLD_DATA_TRIGGER, DELETE_OLD_DATA_GROUP).startNow() .withSchedule(deleteOldDataScheduleBuilder).build(); scheduler.scheduleJob(deleteOldDataJobDetail, deleteOldDataJobTrigger); } }
public class JobDeleteOldData implements Job { /** 输出日志类 */ private Logger logger = LogManager.getLogger(this.getClass()); @Override public void execute(JobExecutionContext arg0) throws JobExecutionException { logger.info("【BATCH-JOB】****JobDeleteOldData Start at : " + DateUtil.getNowYYYYMMDDHHMMSSnoMark() + " ****"); // TODO try { //内容 } catch (Exception e) { throw new JobExecutionException(e.getMessage(), e); } finally { logger.info( "【BATCH-JOB】****JobDeleteOldData Finish at : " + DateUtil.getNowYYYYMMDDHHMMSSnoMark() + " ****"); } } }
原文:https://www.cnblogs.com/goPush/p/13049770.html