Spring 中集成了Quartz的工具,我们在Spring中使用的定时任务也是基于Quartz的,常用的有两种配置方式,一种是设置在系统启动后多少秒启动,然后在多久后重复执行,另外一种是比较灵活的设置方式可以设置在指定的某天某个时段执行,两者只是在任务本身的配置上不同而已,最终都是通过一个统一的方法进行加载执行。
简单方式的定时器
第一步 创建定时任务类
package cn.net.withub.ncs.core;
import java.sql.Date;
import java.util.List;
import org.quartz.JobDetail;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.quartz.JobDetailBean;
import org.springframework.scheduling.quartz.QuartzJobBean;
public class TaskBean {
public TaskBean() {
// TODO Auto-generated constructor stub
}
public void execute(){
//执行要做的操作
}
}
第二步 在Spring配置文件中配置定时任务
<!--配置基础类的信息-->
<bean id="taskBean" class="cn.net.withub.ncs.core.TaskBean" />
<!--配置转换器信息,主要用于把普通类转换成可用的任务类,指定原始类引用和调用的方法名-->
<bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="taskBean" />
<property name="targetMethod" value="execute" />
<property name="concurrent" value="false" /> <!--这是配置任务是否同步执行,就是说在前一个任务未执行完的时候是否继续计算时间来启动下一次任务,建议FALSE来保证任务的完整工作-->
</bean>
<!--配置简单定时任务的处理方法,开始时间,和重启执行周期-->
<bean id="simpleReportTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
<property name="jobDetail">
<ref bean="jobDetail"/>
</property>
<property name="startDelay">
<value>5000</value>
</property>
<property name="repeatInterval">
<value>1000</value>
</property>
</bean>
<!--配置统一调度任务的类,LIST里面可以是多个-->
<bean id="schedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="simpleReportTrigger"/>
</list>
</property>
</bean>
完整定时任务的配置可以参考下面这个链接的说明,主要区别就在于创建基础任务类的方式和Spring中任务配置的一点区别,统一调度都是一样的配置方式。
http://kai2008.iteye.com/blog/435675
分享到:
相关推荐
在Java Spring框架中,动态配置定时任务是一项非常实用的功能,它允许我们根据需求灵活地更改或添加定时任务,而无需每次改动都重启应用。本文将深入探讨如何在Spring中实现这种动态配置,以及如何结合数据库来管理...
在Spring中配置定时任务通常有两种方式:XML配置和Java配置。在给定的描述中提到的是XML配置。在XML配置文件(如`applicationContext.xml`)中,你需要引入`task:`命名空间,并定义一个`task:annotation-driven`...
在Spring Boot应用中,动态配置定时任务是提升系统灵活性和可维护性的重要手段。Spring Boot集成了Spring Framework的TaskExecution和TaskScheduling模块,使得我们可以方便地创建和管理定时任务。本文将深入探讨...
本篇文章将详细探讨如何在 Spring 中配置定时任务,并通过具体的示例代码进行说明。 #### 二、Spring 定时任务配置原理 在 Spring 中,定时任务主要依赖于 Quartz 这个成熟的任务调度框架。Quartz 提供了丰富的 ...
3. 创建Spring的配置文件(如`applicationContext.xml`),配置定时任务的相关bean。 4. 编写定时任务类,可以是普通的Java类,通过`@Component`或`@Service`注解将其纳入Spring管理,然后使用`@Scheduled`或实现`...
总结一下,Spring Boot中使用数据库配置定时任务的主要步骤包括: 1. 开启Spring Boot的定时任务支持。 2. 创建一个配置类,用于加载数据库中的定时任务配置。 3. 设计一个模型类来表示数据库中的定时任务配置。 4....
在Spring框架中,XML配置是传统且广泛使用的方式来设置应用的组件和行为,包括实现定时任务。定时任务在软件开发中扮演着重要角色,它允许应用程序在预设的时间执行特定的任务,例如数据清理、日志归档或者发送通知...
本例主要探讨如何在Spring中配置和执行定时任务。 首先,我们要引入Spring Task的相关依赖。如果你使用的是Maven,你需要在pom.xml文件中添加以下依赖: ```xml <groupId>org.springframework.boot <artifactId>...
在这两种方式中,Spring框架提供了自己的定时任务工具Spring Task,以及与专业定时任务框架Quartz集成的能力。 首先,对于Java自带的定时任务实现,我们可以使用java.util.Timer和java.util.TimerTask类。Timer类...
-- 使用XML配置定时任务 --> * * * * ?"/> <!-- 示例定时任务类 --> ``` 在这个XML配置中,我们指定了`ScheduledTasks`类的`reportCurrentTime`方法按Cron表达式`0/5 * * * * ?`执行,即每5分钟执行一次。...
在Spring中配置Quartz,首先需要在Spring配置文件中声明JobDetail和Trigger,然后将它们关联。Quartz允许更复杂的定时策略,如复杂的cron表达式、依赖管理等。Spring的SchedulerFactoryBean可以帮助我们轻松地将...
6. **注册JobDetail和Trigger**:在Spring配置文件中,为每个Job创建一个`JobDetail`,并为每个`JobDetail`配置对应的`Trigger`。 ```xml <bean id="myJob" class="org.springframework.scheduling.quartz....
在Spring配置文件中,你需要创建一个表示作业的bean,并指定其执行的类。此外,还需要创建一个触发器bean,指定何时启动任务。然而,上述示例中并未展示Quartz的具体配置,只是提到了使用Quartz执行复杂任务的可能性...
2. **创建作业bean**:在Spring配置文件中声明这个作业bean,并设置其类为`MyJob`: ```xml ``` 3. **定义触发器**:触发器控制作业何时执行。Quartz提供了多种类型的触发器,如SimpleTrigger、CronTrigger等。...
本文将详细介绍如何在Spring中配置和使用Quartz进行定时任务的实现。 首先,我们需要在项目的配置文件中引入Quartz的相关组件。在示例中,我们看到了一个名为`quartz.xml`的配置文件,它使用Spring的XML配置语法来...
在Spring中配置定时任务需要以下几步: - **创建线程池**: ```xml <bean id="threadPoolTaskScheduler" class="org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler"> ``` - **定义业务...
本项目旨在演示如何利用Spring和Quartz从数据库中动态加载定时任务,并实现对它们的增删改查功能。以下是关于这个主题的详细知识讲解。 首先,Quartz是一个开源的作业调度框架,它允许开发者创建、安排和执行定时...
spring定时任务SimpleTrigger 和CronTrigger 配置
1. **配置定时任务** 在Spring Boot应用的配置文件(`application.properties`或`application.yml`)中,我们可以设置全局的定时任务配置。例如,我们可以设置一个固定的延迟时间让定时任务开始执行: ```...