【视频&交流平台】
http://study.163.com/course/introduction.htm?courseId=1004329008&utm_campaign=commission&utm_source=400000000155061&utm_medium=share
http://study.163.com/course/introduction.htm?courseId=1004638001&utm_campaign=commission&utm_source=400000000155061&utm_medium=share
https://gitee.com/happyangellxq520/spring-boot
http://412887952-qq-com.iteye.com/blog/2321532
这一篇文章,我们紧接着上一篇的文章,讲讲在Quartz在java project的项目中如何进行使用,在这里我们使用maven进行构建项目。先看下本章的大纲:
(2)配置pom.xml文件;
(3)编码说明;
(4)编写Job类;
(5)编写启动类进行代码测试;
(6)quartz.properties配置文件说明;
接下里一起看下具体的内容:
(1)新建工程quartz-java;
新建一个java project取名为quartz-java。
(2)配置pom.xml文件;
在pom.xml文件中添加quartz的依赖:
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.3</version>
</dependency>
(3)编码说明;
(一)首先我们需要定义一个任务类,比如为HelloJob ,该类需要继承Job类,然后添加execute(JobExecutionContext context)方法,在这个方法中就是我们具体的任务执行的地方。
(二)在哪里定义“在什么时候执行什么任务呢?”:那么我们需要Scheduler,此类的创建方式使用Quartz提供的工厂类StdSchedulerFactory.getDefaultScheduler()进行创建。
(三)如何触发呢:scheduler.scheduleJob(jobDetail,trigger);进行触发定时任务,在这里需要两个参数。jobDetail可以通过JobBuilder.newJob进行创建,在这里就需要制定一个Job类了,也就是我们第一步创建的HelloJob;trigger类的话,可以通过TriggerBuilder.newTrigger进行创建。
(4)编写Job类;
编写HelloJob任务类:
package com.kfit.job;
import java.util.Date;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
/**
* 任务类.
* @author Angel --守护天使
* @version v.0.1
* @date 2017年4月21日
*/
public class HelloJob implements Job{
public void execute(JobExecutionContext context) throws JobExecutionException {
// 执行响应的任务.
System.out.println("HelloJob.execute,"+new Date());
}
}
(5)编写启动类进行代码测试;
在Main方法中进行编码测试:
package com.kfit;
import java.util.concurrent.TimeUnit;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SimpleScheduleBuilder;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory;
import com.kfit.job.HelloJob;
/**
* 直接在Main方法中进行启动测试.
* @author Angel --守护天使
* @version v.0.1
* @date 2017年4月21日
*/
public class App {
public static void main(String[] args) throws SchedulerException, InterruptedException {
/*
*在 Quartz 中, scheduler 由 scheduler 工厂创建:DirectSchedulerFactory 或者 StdSchedulerFactory。第二种工厂 StdSchedulerFactory 使用较多,
*因为 DirectSchedulerFactory 使用起来不够方便,需要作许多详细的手工编码设置。
*/
// 获取Scheduler实例
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
scheduler.start();
System.out.println("scheduler.start");
//具体任务.
JobDetail jobDetail = JobBuilder.newJob(HelloJob.class).withIdentity("job1","group1").build();
//触发时间点. (每5秒执行1次.)
SimpleScheduleBuilder simpleScheduleBuilder = SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(5).repeatForever();
Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1","group1").startNow().withSchedule(simpleScheduleBuilder).build();
// 交由Scheduler安排触发
scheduler.scheduleJob(jobDetail,trigger);
//睡眠20秒.
TimeUnit.SECONDS.sleep(20);
scheduler.shutdown();//关闭定时任务调度器.
System.out.println("scheduler.shutdown");
}
}
执行代码查看控制台的打印信息:
-----------------------------------------------------------
scheduler.start
HelloJob.execute,Fri Apr 21 19:50:01 CST 2017
HelloJob.execute,Fri Apr 21 19:50:06 CST 2017
HelloJob.execute,Fri Apr 21 19:50:11 CST 2017
HelloJob.execute,Fri Apr 21 19:50:16 CST 2017
HelloJob.execute,Fri Apr 21 19:50:21 CST 2017
scheduler.shutdown
(6)quartz.properties配置文件说明;
Quartz中有一个配置quartz.properties可以配置参数,比如:线程池的容量,实例名称。比如:
org.quartz.scheduler.instanceName = MyScheduler
org.quartz.threadPool.threadCount = 3
org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
org.quartz.threadPool.threadCount:配置线程池的容量,即表示同时最多可运行的线程数量。
org.quartz.scheduler.instanceName:scheduler实例名称。
org.quartz.jobStore.class:job存储方式,RAMJobStore是使用JobStore最简单的一种方式,它也是性能最高效的,顾名思义,JobStore是把它的数据都存储在RAM中,这也是它的快速和简单配置的原因;JDBCJobStore也是一种相当有名的JobStore,它通过JDBC把数据都保存到数据库中,所以在配置上会比RAMJobStore复杂一些,而且不像RAMJobStore那么快,但是当我们对数据库中的表的主键创建索引时,性能上的缺点就不是很关键的了。
您可以在代码中打印scheduler实例名称,如下代码:
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
scheduler.start();
System.out.println("scheduler.start");
System.out.println(scheduler.getSchedulerName());
视频&交流平台:
http://study.163.com/course/introduction.htm?courseId=1004329008
http://412887952-qq-com.iteye.com/blog/2321532
相关推荐
Spring Boot 是一个流行的 Java 框架,用于简化Spring应用程序的初始设置和配置。...通过上述步骤,你已经掌握了在Spring Boot应用中集成和使用Quartz的基本知识,可以开始创建和管理自己的定时任务了。
在Java Spring中整合Quartz,可以利用Spring的管理能力来控制Quartz的作业和触发器,使得整个系统更加灵活和易于维护。以下将详细介绍如何进行Spring与Quartz的整合。 1. **集成步骤** - 添加依赖:首先,确保在...
在Spring框架中集成Quartz是一款常见的任务调度解决方案,它允许开发者在应用中...通过以上步骤,你就可以在Spring中成功配置并使用Quartz进行任务调度了。注意,实际应用中还需要根据具体需求调整配置和Job的实现。
在IT行业中,Spring Boot和Quartz是两个非常重要的框架,它们在企业级应用开发中扮演着关键角色。Spring Boot简化了Spring应用的初始搭建以及开发过程,提供了开箱即用的功能,而Quartz则是一个强大的任务调度库,常...
1. 定义Job接口:Spring Boot中的Job需要实现`org.springframework.batch.core.Job`接口,但是这里我们使用Quartz,所以需要实现`org.quartz.Job`接口。例如: ```java import org.quartz.Job; import org.quartz....
在IT行业中,Spring Boot是一个非常流行的Java开发框架,它简化了Spring应用的初始搭建以及开发过程。Quartz是另一个常用于任务调度的开源框架,它允许开发者定义定时任务来执行特定的操作。在这个场景中,我们将...
以下将详细介绍如何在Spring Boot应用中使用YAML文件配置Quartz定时任务,以及涉及的Spring Cloud Alibaba、Dubbo和Nacos的相关知识。 首先,我们需要在`pom.xml`中引入相关的依赖。Spring Boot的`spring-boot-...
在Spring框架中,定时任务是常见的需求,例如用于执行定期数据同步、日志清理或发送邮件等。Quartz是一款强大的开源任务调度库,它能够与Java应用程序无缝集成,实现复杂的时间触发任务。当我们遇到Spring定时器执行...
SpringBoot与Quartz的整合是Java开发者在构建可扩展、自动化任务系统时常见的选择。Quartz是一个开源的作业调度框架,它可以安排和执行基于时间的任务,而SpringBoot则提供了简化Java应用开发的便利性。本案例中,...
spring-boot-quartz-demo, 使用Quartz框架的样例 Spring Boot 应用程序 spring-boot-quartz-demo使用Quartz框架的样例 Spring Boot 应用程序基于 https://gist.github.com/jelies/5085593 附加功能( 断点,失火处理...
3. **定义Job**:创建实现`org.springframework.core.task.TaskExecutor`接口的类,或者直接使用`org.springframework.scheduling.quartz.JobDetailBean`,来定义具体的任务逻辑。 4. **配置Trigger**:创建一个...
在上述代码中,`MyTask`是你自定义的任务类,它需要实现`org.quartz.Job`接口,并重写`execute`方法,以定义任务的具体逻辑。 ```java import org.quartz.JobExecutionContext; import org.quartz....
在Spring Boot中,可以使用`@Component`注解创建一个作业类,然后使用`@DisallowConcurrentExecution`或`@PersistJobDataAfterExecution`注解来控制并发性和数据持久化。例如: ```java import org.quartz.Job; ...
在IT领域,尤其是在Java开发中,定时任务是一个非常常见的需求,用于执行周期性的任务,比如数据备份、报表生成、系统监控等。Spring框架提供了一系列工具来支持定时任务的实现,其中包括Spring自带的`spring-task`...
Spring 和 Quartz2 是两个在 Java 开发中广泛使用的框架,它们在企业级应用中承担着重要的角色。Spring 是一个全面的、开源的应用框架,而 Quartz2 是一个强大的、开源的作业调度库,常用于实现定时任务。下面我们将...
Spring 和 Quartz 是两个在 Java 开发中非常重要的框架。Spring 是一个全面的后端开发框架,而 Quartz 是一个强大的任务调度库。将它们结合使用,我们可以实现基于 Spring 的应用程序中的定时任务管理。以下是对 ...
《Spring Boot实战派》源码提供了丰富的学习材料,旨在帮助开发者深入理解并熟练掌握Spring Boot这一流行的Java后端开发框架。Spring Boot简化了Spring应用程序的初始设置和配置,使得开发人员能够快速构建可运行的...
在Spring Boot中集成Quartz,首先需要添加Quartz和Spring Boot Starter Scheduler的依赖。在`pom.xml`文件中,添加如下依赖: ```xml <groupId>org.springframework.boot <artifactId>spring-boot-starter-...
Spring Boot Documentation 1. About the Documentation 2. Getting Help 3. First Steps 4. Working with Spring Boot 5. Learning about Spring Boot Features 6. Moving to Production 7. Advanced Topics II. ...
在 Spring 中使用 Quartz 调度器,需要编写作业类继承 org.springframework.scheduling.quartz.QuartzJobBean 类。下面是一个简单的示例: ```java package bean.jobDetailBean; import org.quartz....