定制任务计划可以采取两种方式:
1、使用Java自带的Timer定时器。
2、使用Quartz定时器框架。
在
Java
中提供了
Timer
定时器,用于间隔一定时间期内,自动运行某程序的功能。
编写
Timer
需要
extends
TimerTask
实现
public
void
run()
方法。
Timer
定时器的调用:
Timer t =
new
Timer();
t.scheduleAtFixedRate(
new
HelloWorldTask(),
1000, 3000);
task
-
task to be scheduled.
delay
-
delay in milliseconds before task is to be executed.
period
-
time in milliseconds between successive task executions
在
Spring
框架中提供了支持
Timer
的相关方法,方便用户使用
Spring
管理
Timer
定时器。
声明
Timer
定时器:
<
bean
id
=
"job"
class
=
""
/>
添加计划任务:
(
delay
:延迟启动时间、
period:
时间间隔期、
timerTask
:启动的任务)
<
bean
id
=
"timerTask"
class
=
"org.springframework.scheduling.timer.ScheduledTimerTask"
>
<
property
name
=
"delay"
value
=
"1000"
/>
<
property
name
=
"period"
value
=
"3000"
/>
<
property
name
=
"timerTask"
ref
=
"job"
/>
</
bean
>
启动定时器
:
<
bean
id
=
"timerFactory"
class
=
"org.springframework.scheduling.timer.TimerFactoryBean"
>
<
property
name
=
"scheduledTimerTasks"
>
<
list
>
<
ref
local
=
"timerTask"
/>
</
list
>
</
property
>
</
bean
>
Timer
定时器只是为我们提供了间隔一段时间运行某一程序的功能,但是当我们需要在具体的时间运行执行某一程序时,
Timer
就显得力不从心,不过幸运的是我们有
Quartz
。
Quartz
开发流程:
implements
Job
实现
public
void
execute(JobExecutionContext context)
方法
使用工厂方法创建
Scheduler:
SchedulerFactory sf =
new
StdSchedulerFactory();
Scheduler sched = sf.getScheduler();
创建任务明细
:
JobDetail job =
new
JobDetail(
"job1"
,
"group1"
, HelloWorldJob.
class
);
创建触发器:
SimpleTrigger trigger =
new
SimpleTrigger(
"trigger1"
,
"group1"
, runTime);
Scheduler
的
scheduleJob(job, trigger)
方法将
JobDetail
、
Trigger
整合;
start()/shutdown()
开启任务计划。
Quartz
同
Spring
整合有两种方式:
SimpleTrigger
(间隔一段时间运行某一程序)
CronTrigger
(指定某一具体时间运行某一程序)
自定义
Job
类
extends
QuartzJobBean
实现
executeInternal(JobExecutionContext
context)
方法
Spring
配置文件:
JobDetailBean
继承于
Quartz
的
JobDetail
<
bean
id
=
"reportJob"
class
=
"org.springframework.scheduling.quartz.JobDetailBean"
>
<
property
name
=
"jobClass"/
>
</
bean
>
声明
SimpleTriggerBean
,里面包含
jobDetails,startDelay,repeatInterval
等属性
<
bean
id
=
"simpleReportTrigger"
class
=
"org.springframework.scheduling.quartz.SimpleTriggerBean"
>
<
property
name
=
"jobDetail"
ref
=
"reportJob"
/>
<
property
name
=
"startDelay"
value
=
"60000"
/>
<
property
name
=
"repeatInterval"
value
=
"60000"
/>
</
bean
>
创建
SchedulerFactory
,开启日程计划
<
bean
class
=
"org.springframework.scheduling.quartz.SchedulerFactoryBean"
>
<
property
name
=
"triggers"
>
</
bean
>
ConTrigger
同
SimpleTrigger
的配置方式基本相同,只不过将
SimpleTrigger
用
ConTrigger
替代。
<
bean
id
=
"cronReportTrigger"
class
=
"org.springframework.scheduling.quartz.CronTriggerBean"
>
<
property
name
=
"jobDetail"
ref
=
"reportJob"
/>
<
property
name
=
"cronExpression"
value
=
"19 0 10 * * ?"
/>
</
bean
>
分享到:
相关推荐
通过深入学习Spring任务调度,开发者可以有效地管理和执行各种定时任务,提升系统的自动化水平。在实际项目中,可以根据需求的复杂程度选择使用Spring Task或是集成Quartz。同时,理解源码有助于我们更高效地利用...
spring计划任务时间配置完整格式,各种配置说明,案例配置介绍
**Spring-quartz计划任务** Spring框架与Quartz的结合使用,是Java开发中常见的定时任务解决方案。Quartz是一个开源的作业调度框架,可以用来在指定的时间执行特定的任务。而Spring框架则提供了对Quartz的集成,...
下面将详细解释Spring任务调度的关键概念和实现方法。 1. **Spring Task模块** Spring Task是Spring框架内置的任务调度模块,它提供了简单的定时任务执行能力。通过使用Spring Task,我们可以轻松地在应用中添加...
标签中的“源码”意味着这篇博文可能深入解析了Spring任务调度的相关源代码,帮助读者理解其内部工作机制。了解源码有助于优化任务调度的性能,解决潜在的问题,以及进行定制化的扩展。 而“工具”标签可能是指...
Spring框架提供了强大的任务调度能力,使得开发者能够轻松地在Java环境中实现这一功能。本篇将深入探讨如何利用Spring进行任务调度,并结合代码演示和Quartz库的使用来丰富这一主题。 首先,Spring提供了两种主要的...
2. **Spring TaskScheduler**: `TaskScheduler`接口是Spring提供的另一个核心组件,用于计划周期性的任务。与`TaskExecutor`不同,`TaskScheduler`关注的是定时任务,而不是立即执行的任务。可以使用`...
Spring框架提供了强大的任务调度能力,使得开发者能够轻松地集成和管理定时任务。本资料“Spring实现任务调度”将深入探讨如何在Spring中设置和管理定时任务。 首先,我们需要理解Spring中的任务调度机制。Spring...
Spring定时任务的几种实现,欢迎交流!
本案例"Spring的计划任务小案例"就是围绕这个主题展开,通过一个名为"TimerTaskDemo"的示例来介绍如何在Spring中实现定时任务。 首先,我们需要在Spring配置文件中开启任务调度支持。这通常在`applicationContext....
Spring框架提供了多种方式来实现定时任务,这使得开发者可以在不同场景下选择最适合的方案。本文主要探讨了Spring中实现定时任务的三种主要方法:Java的`java.util.Timer`、Quartz库以及Spring自身的Task调度器。 ...
Spring中的任务调度是实现应用程序自动化运行任务的重要工具,而Quartz是Java领域广泛使用的开源任务调度框架。在本文中,我们将深入探讨如何在Spring中集成Quartz进行任务调度,并通过一个简单的示例来理解其工作...
在Spring框架中,定时任务是实现自动化操作的重要组成部分,它允许开发者在特定的时间间隔执行一些重复性的任务。本文将深入探讨Spring中的定时任务,并结合Eclipse和Maven项目环境进行讲解。 首先,Spring提供了两...
在Spring框架中,XML配置是传统且广泛使用的方式来设置应用的组件和行为,包括实现定时任务。定时任务在软件开发中扮演着重要角色,它允许应用程序在预设的时间执行特定的任务,例如数据清理、日志归档或者发送通知...
### Spring2.5定时器任务实现机制与配置详解 #### 一、Spring2.5定时器任务概述 在Spring框架2.5版本中,提供了强大的定时任务管理功能,支持多种方式来实现定时任务的调度与执行。这为开发人员提供了一个灵活且...
在Spring框架中,定时任务是实现系统自动化运行关键任务的重要工具。Spring提供了多种方式来创建和管理定时任务,包括基于接口的TaskExecutor、基于注解的@Scheduled和集成Quartz Scheduler。下面将详细讲解这三种...
在Spring框架中,定时任务是通过Spring的Task模块来实现的,这使得在非Web项目中也能方便地进行定时任务的调度。以下是对这个主题的详细讲解。 首先,我们需要了解Spring Task的核心组件: 1. **...
例如,Quartz是一个强大的作业调度框架,可以创建复杂的定时任务计划,而CronUtils则是一个现代的,易于使用的Java库,用于解析和生成Cron表达式。 最后,如果项目中使用了Spring Boot,那么`spring-boot-starter-...
在Java开发中,Spring框架以其强大的功能和灵活性深受开发者喜爱,其中包括了对定时任务的支持。在Spring中,我们可以使用Spring的TaskExecution和TaskScheduling模块来实现定时任务,这些功能通常依赖于特定的jar包...