首页 > 编程语言 > 详细

java设置定时任务

时间:2020-06-05 16:03:48      阅读:53      评论:0      收藏:0      [点我收藏+]

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

 

java设置定时任务

原文:https://www.cnblogs.com/goPush/p/13049770.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!