Quartz简单三步入门

Quartz简单入门教学

Quartz是我们的任务调度框架,在JAVA中简单的任务调度我们可以使用Timer来进行,但是复杂的调度我们就选择使用Quartz。

Quartz是一个完全由java编写的开源作业调度框架。尽管Quartz框架整合了许多额外功能, 但就其简易形式看,你会发现它易用得简直让人受不了!简单地创建一个实现org.quartz.Job接口的java类。Job接口包含唯一的方法:
public void execute(JobExecutionContext context)
throws JobExecutionException;
在你的Job接口实现类里面,添加一些逻辑到execute()方法。一旦你配置好Job实现类并设定好调度时间表,Quartz将密切注意剩余时间。当调度程序确定该是通知你的作业的时候,Quartz框架将调用你Job实现类(作业类)上的execute()方法并允许做它该做的事情。无需报告任何东西给调度器或调用任何特定的东西。仅仅执行任务和结束任务即可。如果配置你的作业在随后再次被调用,Quartz框架将在恰当的时间再次调用它。

第一步

Quartz官网下载,下载要挂vpn可以买也可以用淘宝镜像,这里就不讲解了。
在这里插入图片描述
然后下载那个最新的就好了,下载完成以后解压。

第二步

在我们的Java Project中新建一个文件夹,名字是lib也可以是别的,比如下面这样
在这里插入图片描述
然后解压我们下载的压缩包
在这里插入图片描述
找到Quartz的lib文件夹,把里面的文件全都ctrl+c然后ctrl+v 到我们的lib中
在这里插入图片描述
然后右击lib,BuildPath,就搭建好了。
在这里插入图片描述

第三步

在我们的Quartz文件夹中找到example,具体路径如下
在这里插入图片描述
随便打开一个example
在这里插入图片描述
复制粘贴到一个包里
在这里插入图片描述
记得把包名改成我们现在这个包的名字
然后就可以跑了,跑了之后会发现有提示
在这里插入图片描述
其实没什么关系,这是一个日志文件,但是我们还是需要导入一下
log4j文件位置在这个地方
在这里插入图片描述
复制粘贴到我们的Project的src下就可以了
在这里插入图片描述
现在再跑,就成功了,接下来可以把其他几个examples都琢磨一下,也可以都导入进来跑一跑,下面贴上修改的代码。

public class HelloJob implements Job {


    public HelloJob() {
    }


    public void execute(JobExecutionContext context)
        throws JobExecutionException {
   System.out.println("------start------");
   System.out.println("Hello World!--"+new Date());
   System.out.println("-------end-------");
    }

}
import static org.quartz.DateBuilder.evenSecondDateAfterNow;
import static org.quartz.JobBuilder.newJob;
import static org.quartz.TriggerBuilder.newTrigger;
import static org.quartz.SimpleScheduleBuilder.simpleSchedule;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerFactory;
import org.quartz.SimpleScheduleBuilder;
import org.quartz.Trigger;
import org.quartz.impl.StdSchedulerFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Date;
public class Quartzz {

	public void run() throws Exception {

		// 1、创建scheduler工厂
		SchedulerFactory sf = new StdSchedulerFactory();
		// 2、从工厂中获取调度器
		Scheduler sched = sf.getScheduler();

		// 3、创建JobDetai
		JobDetail job = newJob(HelloJob.class).withIdentity("job1", "group1").build();
		// 时间
		Date runTime = evenSecondDateAfterNow();

		// 4、触发器条件
		Trigger trigger = newTrigger().withIdentity("trigger1", "group1").startAt(runTime)
        .withSchedule(simpleSchedule().withIntervalInSeconds(2)
        .withRepeatCount(3)).build();

		// 5、注册任务和触发条件
		sched.scheduleJob(job, trigger);

		// 6、启动
		sched.start();
		try {
			// 5秒后停止
			Thread.sleep(500L * 1000L);
			// executing...
		} catch (Exception e) {
			//
		}

	}

	public static void main(String[] args) throws Exception {

		Quartzz example = new Quartzz();
		example.run();

	}

}

干净简洁了许多。
over~

发布了13 篇原创文章 · 获赞 1 · 访问量 296

猜你喜欢

转载自blog.csdn.net/Alagagaga/article/details/105485019