spirngboot设置定时任务

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() + "  ****");
        }
    }
}

 

posted @ 2020-06-05 14:59  KeepSmiling_me  阅读(623)  评论(0)    收藏  举报