spring中带了对定时任务的实现,从而使你不必写一个自己的线程来定期扫描是否需要执行某任务。
具体的配置如下
spring配置文件中的配置
<!-- 定时任务 开始-->
<bean name="quartzSchedualr" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="cronTrigger"></ref>
</list>
</property>
<property name="configLocation" value="classpath:quartz.properties"/>
</bean>
<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="autoOpenServer"/>
<!--every day 08:00:00 execute once(0 0 8 * * ?), format: second minute hour date month weekday year(optional)-->
<property name="cronExpression" value="0 49 15 * * ?"/> <!--15:49:00执行-->
</bean>
<bean id="autoOpenServer" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!--实际调用类-->
<property name="targetObject" ref="server"/>
<!--实际调用的方法-->
<property name="targetMethod" value="getTime"/>
</bean>
<bean id="server" class="com.liu.controller.Server" />
<!--定时任务结束 -->
定时任务调用的JAVA类
package com.liu.controller;
import java.util.Date;
public class Server {
public void getTime(){
System.out.println(new Date());
}
}
对于下面这个参数的设定
<property name="cronExpression" value="0 49 15 * * ?"/> <!--15:49:00执行-->
一个Quartz的CronTrigger表达式分为七项子表达式,其中每一项以空格隔开,从左到右分别是:秒,分,时,月的某天,月,星期的某天,年;其中年不是必须的,也就是说任何一个表达式最少需要六项!
注:发现少上传了一个quartz.properties的配置文件,配置文件放到src目录下
#============================================================================
# \u914d\u7f6e Main Scheduler Properties
#============================================================================
org.quartz.scheduler.instanceName = DefaultQuartzScheduler
org.quartz.scheduler.rmi.export = false
org.quartz.scheduler.rmi.proxy = false
org.quartz.scheduler.wrapJobExecutionInUserTransaction = false
#============================================================================
# \u914d\u7f6e\u6267\u884c\u7ebf\u7a0b\u6c60
#============================================================================
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 10
org.quartz.threadPool.threadPriority = 5
org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread = true
#============================================================================
# \u914d\u7f6e JobStore
#============================================================================
org.quartz.jobStore.misfireThreshold = 60000
#\u5185\u5b58\u4e2dJobStore, \u670d\u52a1\u5668\u91cd\u542f\u65f6\u6267\u884c\u8bb0\u5f55\u4f1a\u4e22\u5931
org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
#\u6570\u636e\u5e93\u4e2dJobStore\uff0c\u4e0d\u8fc7HSQLDB\u4e0d\u652f\u6301select * from locks for update \u7684\u8bed\u6cd5
#org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
#org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.HSQLDBDelegate
#org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.oracle.OracleDelegate
分享到:
相关推荐
Spring框架提供了多种方式来实现定时任务,这使得开发者可以在不同场景下选择最适合的方案。本文主要探讨了Spring中实现定时任务的三种主要方法:Java的`java.util.Timer`、Quartz库以及Spring自身的Task调度器。 ...
在非Web项目中实现Spring定时任务,主要步骤如下: 1. **配置Spring Task**:在Spring的配置文件(如`applicationContext.xml`或使用Java配置类)中,我们需要启用任务调度功能并配置相应的执行器或调度器。例如,...
Spring定时任务的几种实现,欢迎交流!
本文将详细探讨Spring定时任务的关键知识点,并与提供的jar包列表关联。 首先,Spring定时任务主要依赖于`spring-context-support`模块,这个模块包含了处理定时任务所需的类和接口。在压缩包`lib`中,应该包含了这...
Spring定时任务实现与配置(一) 本文主要介绍了Spring定时任务的实现与配置,涵盖了基本概念、依赖管理、配置文件设置、Quartz配置、Job配置等方面的知识点。 Spring定时任务的基本概念 在Spring中,定时任务是...
通过阅读和理解这些源码,你可以更好地了解Spring如何管理和调度定时任务,以及如何根据项目需求选择合适的定时任务实现方式。在chapter13目录下的文件可能包含了这些源码示例,你可以逐一研究,加深对Spring定时...
在Spring框架中,有三种主要的定时任务机制可供开发者选择,分别是基于Quartz的定时机制、Spring自己的`@Scheduled`注解以及...在实际开发中,可以根据项目规模、性能需求和团队熟悉度来决定最适合的定时任务实现方式。
以上每个jar包都是Spring定时任务实现中的关键组件,确保它们在类路径中正确配置,能帮助开发者轻松地创建、管理和调度任务。在实际项目中,除了这些核心库,还可能需要根据具体需求添加其他依赖,如数据库驱动、...
2. **依赖的jar包**:实现Spring定时任务,通常需要以下10个关键的jar包: - `spring-context`: 包含了Spring的核心功能,如依赖注入(DI),AOP,事件处理等,是实现定时任务的基础。 - `spring-context-support`: ...
Spring定时任务支持更多的功能,比如任务执行的并发控制、任务执行的监听器、以及使用Quartz等第三方调度库进行更复杂的任务调度。 总结,Spring定时任务为开发者提供了方便的API和注解,使我们可以轻松地在Java...
Spring定时任务基于`@Scheduled`注解和`TaskScheduler`接口实现。`@Scheduled`用于标注需要定时执行的方法,而`TaskScheduler`则提供了更灵活的定时任务调度方式。 2. **启用定时任务** 要使用Spring定时任务,...
一、Spring定时任务简介 Spring框架的定时任务功能主要依赖于`Spring Task`模块,也称为Spring的后台任务处理。它提供了基于`@Scheduled`注解和`TaskScheduler`接口的两种定时任务实现方式。`@Scheduled`适用于简单...
Spring定时任务实现与配置(二) 在本文中,我们将详细介绍Spring定时任务的实现与配置的第二篇,主要讨论如何在Spring项目中实现简单的定时任务。 首先,我们需要在Maven项目的pom文件中添加两个依赖项:spring-...
Spring框架提供了一系列工具来支持定时任务的实现,其中包括Spring自带的`spring-task`模块和第三方的Quartz库。下面我们将详细探讨这两种方式以及如何通过注解和非注解的方式进行配置。 首先,`spring-task`是...
#### 二、Spring定时任务实现方式 Spring支持多种定时任务实现方式,包括但不限于: 1. **基于Spring的`@Scheduled`注解** 2. **基于Quartz** 3. **基于Java定时器(Timer)** 本文主要介绍的是基于Quartz的定时...
结合Eclipse和Maven,创建Spring定时任务项目时,你需要: 1. 创建一个新的Maven项目,并添加Spring的相关依赖,如`spring-context`, `spring-context-support`(对于Spring Task),以及`quartz`和`spring-quartz`...
总结来说,选择Spring定时任务实现方式时,可以考虑以下几点: 1. 如果任务需求简单,且不需复杂的调度逻辑,可以优先考虑Spring Task,因为它更加轻便,易于集成。 2. 当任务需要复杂的调度策略,或者需要跨应用...
下面我们将深入探讨Spring定时任务所需的相关jar包以及它们的功能。 首先,Spring框架的核心jar包`spring-context.jar`是必不可少的。这个jar包包含了Spring的核心功能,如依赖注入(Dependency Injection,DI)、...
在Spring框架中,XML配置是传统且广泛使用的方式来设置应用的组件和行为,包括实现定时任务。定时任务在软件开发中扮演着重要角色,它允许应用程序在预设的时间执行特定的任务,例如数据清理、日志归档或者发送通知...
在Spring框架中,定时任务是一项重要的功能,它允许开发者在特定的时间间隔内执行特定的任务,无需手动触发。这个实例是关于如何在Spring中配置和使用定时任务,同时结合MyBatis来向数据库插入数据。接下来,我们将...