Quartz 单例定时任务

1、引入jar包,继承 Job 接口,编写需要执行的业务逻辑


            org.quartz-scheduler
            quartz
            2.3.2
        
public class DemoJob implements Job {
    @Override
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        System.out.println("我是一个定时任务执行逻辑");
    }
}

2、编写定时任务执行器

public class QuartzExecutor {
    //1、创建一个任务调度器(好比公交调度站)
    public static Scheduler createScheduler() throws SchedulerException {
        SchedulerFactory schedulerFactory = new StdSchedulerFactory();
        Scheduler scheduler = schedulerFactory.getScheduler();
        return scheduler;
    }
    //2、创建一个任务(好比某一个公交车出行)
    public static JobDetail createJob(){
        JobBuilder jobBuilder = JobBuilder.newJob(DemoJob.class);
        jobBuilder.withIdentity("jobName","myjob");

        JobDetail jobDetail = jobBuilder.build();
        return jobDetail;
    }
    //3、创建作业任务时间出发器
    public static Trigger createTrigger(){
        CronTrigger cronTrigger = TriggerBuilder.newTrigger().
                withIdentity("triggerName", "myTrigger").
                startNow().
                withSchedule(CronScheduleBuilder.cronSchedule("*/2 * * * * ?")).build();
        return cronTrigger;
    }

    public static void main(String[] args) throws SchedulerException {
        //1、创建一个任务调度器(好比公交调度站)
        Scheduler scheduler = QuartzExecutor.createScheduler();
        //2、创建一个任务(好比某一个公交车出行)
        JobDetail job = QuartzExecutor.createJob();
        //3、创建作业任务时间出发器
        Trigger trigger = QuartzExecutor.createTrigger();
        //4、根据任务调度器根据时间触发器执行我们的任务
        scheduler.scheduleJob(job,trigger);
        scheduler.start();
    }
}

备注:

cron表达式有七个位置组成:

1、Second(秒)  0~59

2、Minutes(分)  0~59

3、Hours (小时) 0~23

4、Day of Month (天) 1~31 ,有的月份不足31天

5、Month(月) 0~11 ,或者 JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC

6、Day of Week(周) 1~7,1=SUN或者 SUN,MON,TUE,WEB,THU,FRI,SAT

7、Year(年)1970~2099 可选项

示例:

0 0 11 * * ? 每天的11点触发执行一次

0 30 10 1 * ? 每月1号上午10点半触发执行一次

你可能感兴趣的:(cluster,java,android,开发语言)