Quartz 定时任务工具 使用简单

quartz 是一个简单的定时任务调度的工具。使用简单。

一 quartz maven导入

<dependency>
    <groupId>org.quartz-scheduler</groupId>
    <artifactId>quartz</artifactId>
    <version>2.3.2</version>
</dependency>

二 代码使用示例

public class QuartzDemo {
    @SuppressWarnings({ "unchecked", "rawtypes" })
    public static void main(String[] args) throws Throwable {
        // 1 创建一个计划的实例
        SchedulerFactory schedulerFactory = new StdSchedulerFactory();
        Scheduler scheduler = schedulerFactory.getScheduler();
		
        // 2 创建一个执行任务,设置运行Job的实例接受的类,此类实现org.quartz.Job。
        Class<? extends Job> jobClass = MyJob.class; 
        JobBuilder jobBuilder = JobBuilder.newJob(jobClass);
        jobBuilder.withIdentity("myJob"); // 设置个名字
        JobDetail jobDetail = jobBuilder.build();
		
        // 3 创建触发器、任务在某时间调度触发,来至少设置的任务。
        TriggerBuilder triggerBuilder = TriggerBuilder.newTrigger();
        triggerBuilder.withIdentity("myTrigger");  // 给触发器设置个名
        triggerBuilder.startNow();   // 立即开始
        // 设置任务调度条件
        String cronExpression = "*/1 * * * * ?";
        triggerBuilder.withSchedule(CronScheduleBuilder.cronSchedule(cronExpression));
        Trigger trigger = triggerBuilder.build();
		
        // 4 添加计划任务
        scheduler.scheduleJob(jobDetail, trigger);
		
        scheduler.start();
    }
	
    public static class MyJob implements Job {
        @Override
        public void execute(JobExecutionContext context) throws JobExecutionException {
            System.out.println("exec-time:" + new Date());
        }
    }
}

三 cron:

cron 表达式由七个位置组成,空格分隔

* 秒 0~59

* 分 0~59

* 小时 0~23

* 天 1~31; 注意有的⽉份不⾜31天

* 月 0~11; 或者 JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC

* 周 1~7; 1=SUN或者 SUN,MON,TUE,WEB,THU,FRI,SAT

* 年 1970~2099 可选项 一般很少填写

其中天和星期相互冲突,如果设置天 则星期设置 ?。

输入方向从左至右,通过空格分割。 秒 分 时 天 月 星期 年

 其中 * 代表所有,*/n ,n是间隔的时间,n1-n2 (代表范围)

例如:

*/1 * * * * ?   每1秒执行一次

*/10 * * * * ?   每10秒执行一次

1-20/2 * * * * ? 仅在时间的秒数为 1-20范围内,每2秒执行一次。例如2020-05-19 14:08:18 满足条件则执行。

* */1 * * * ? 每1分钟执行一次

猜你喜欢

转载自blog.csdn.net/zxy2711352/article/details/106212827