EmailReportJob类执行一个简单打印功能,这里有一个参数就name,这就是我们要执行被调度程序
import org.quartz.JobDataMap;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.quartz.QuartzJobBean;
public class EmailReportJob extends QuartzJobBean{
protected void executeInternal(JobExecutionContext context)
throws JobExecutionException {
JobDataMap data = context.getJobDetail().getJobDataMap();
String s = (String) data.get("name");
System.out.println("Hello "+s);
}
}
SchedulerImpl就是我们调度程序
import java.text.ParseException;
import org.quartz.CronExpression;
import org.quartz.CronTrigger;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.impl.StdSchedulerFactory;
public class SchedulerImpl {
Scheduler sh;
public void scheduler() throws SchedulerException, ParseException{
//create SchedulerFactory创建调度工厂
SchedulerFactory sf = new StdSchedulerFactory();
//pass SchedulerFactory get Scheduler 得到调度类
sh = sf.getScheduler();
//add EmailReportJob.class build JobDetail生成工作细节就是调度EmailReportJob类(参数是名字,组,调类)
JobDetail job = new JobDetail("LB","HOME", EmailReportJob.class);
//set EmailReportJob.class parameter传递参数给被调度类(EmailReportJob)
job.getJobDataMap().put("name", "LB");
//get cron's trigger 创建触发器
CronTrigger cronTrigger = getCronTrigger();
//schedule job and trigger 将调度工作和触发器一起放入调度任务中
sh.scheduleJob(job, cronTrigger);
//start scheduler启动
sh.start();
}
public CronTrigger getCronTrigger() throws ParseException{
//create cron's trigger 创建触发器
CronTrigger cronTrigger = new CronTrigger("cronTrigger", "test");
//create cron's expression 设置触发条件如不理解请参照spring 定时器文章中的介绍
CronExpression cexp = new CronExpression("10 * * * * ?");
//set cron's expression
cronTrigger.setCronExpression(cexp);
return cronTrigger;
}
public void deleteSchedule() throws SchedulerException {
sh.unscheduleJob("cronTrigger", "test");
}
public static void main(String[] args) throws SchedulerException, ParseException, InterruptedException{
new SchedulerImpl().scheduler();启动定时器
}
}
我们将在每分钟的第10秒看到一次输出,一个简单定时器灵活应用完成
分享到:
相关推荐
总的来说,Spring定时器为开发者提供了一种简单、灵活的方式来管理周期性任务,极大地提高了开发效率,并降低了维护成本。通过合理配置和使用,我们可以轻松地将定时任务集成到Spring Boot应用中,实现自动化的工作...
Spring定时器,也称为Spring的`@Scheduled`注解和`TaskScheduler`接口,提供了更强大且灵活的定时任务管理。Spring使用`@Configuration`类配合`@EnableScheduling`注解开启定时任务功能。在该配置类中,你可以定义一...
总的来说,这个"spring定时器简单的demo"是一个基础的Spring定时任务示例,展示了如何通过Spring Task模块在Spring应用中添加定时任务,以及如何在`applicationContext.xml`中进行配置。理解并掌握这一知识,对于...
通过`CronScheduleBuilder`,我们可以使用cron表达式设置更灵活的执行时间。 总的来说,Spring自带的定时任务简单易用,适合简单的定时需求。而Quartz功能强大,适合处理复杂的调度场景。在选择使用哪种方式时,...
Spring定时器,也被称为Spring Boot的定时任务,是Spring框架中的一个强大功能,它允许开发者在特定的时间间隔执行任务,而无需手动管理线程。在实际的开发中,这一特性常用于实现数据清理、统计计算、发送邮件等...
`TaskScheduler`接口提供了更灵活的调度任务的方式,可以自定义调度策略。 为了启用Spring AOP和定时任务,我们需要在配置类中启用它们。对于AOP,我们需要添加`@EnableAspectJAutoProxy`注解,并可能需要配置代理...
以上内容详细介绍了Spring定时器的相关知识点,包括其基本概念、不同类型的定时器以及实际应用中的配置和实现方法。通过理解和掌握这些知识,开发者可以更高效地利用Spring框架来实现复杂的定时任务功能。
### Spring 定时器的使用 #### 背景与需求 在开发应用程序时,并非所有操作都需要用户主动触发。有些任务需要系统自动执行,比如数据同步、定期备份等。例如,电力行业的集抄系统(一种自动收集电表读数的系统)...
总结来说,Spring定时器是一个强大且灵活的工具,用于在Spring应用中实现定时任务。通过合理配置`applicationContext.xml`,我们可以根据业务需求定制任务执行的频率和策略,实现诸如数据同步、报表生成等自动化的...
下面是一个完整的Spring定时器示例: 1. **配置Spring配置类** 首先,我们需要创建一个配置类,启用定时任务支持,并提供一个`ThreadPoolTaskScheduler`实例,用于调度任务。 ```java @Configuration @...
本文旨在深入解析Spring定时器的时间配置规则,并通过具体的代码示例进行演示。 #### Cron表达式的构成 Cron表达式由六个或七个空格分隔的时间元素组成,这些元素分别代表: 1. **秒** (0–59) 2. **分钟** (0–59...
Spring定时器,全称为Spring...总的来说,Spring定时器提供了灵活、易用的任务调度功能,帮助开发者轻松管理各种周期性任务,提升了应用的自动化程度和效率。通过合理配置和使用,可以极大地简化项目中的定时任务处理。
Spring 框架是 Java 开发中的核心组件之一,它提供了丰富的功能,包括但不限于依赖注入、面向切面编程以及各种企业级服务。...在实际项目中,还可以通过调整任务调度策略,如cron表达式,来实现更灵活的定时任务管理。
Spring定时器Quartz是Java应用中广泛使用的任务调度框架,它允许开发者定义并执行复杂的定时任务。这篇博客可能探讨了如何在Spring框架中集成Quartz,以实现灵活、可扩展的任务调度。 Quartz是一个开源的作业调度...
Spring的Quartz定时器提供了一种强大且灵活的方式来管理和执行定时任务,适合在各种复杂的应用场景中使用。 在压缩包文件`quartzTimerDemo`中,可能包含了实现上述步骤的示例代码,包括配置文件、Job类和启动定时...
在Spring框架中,定时任务是通过Spring Task模块来实现的,它提供了强大的任务调度和执行功能,能够方便地实现应用程序中的周期性任务。本篇将详细介绍如何配置和使用Spring的定时器来定时调用任务。 首先,让我们...
Spring框架是Java开发中广泛使用的轻量级框架,它的定时任务功能强大且灵活,能够帮助企业级应用实现自动化任务,如数据同步、报表生成等。在Spring的早期版本中,定时任务主要依赖于`org.springframework....
总结,本实例通过Spring定时器展示了如何在Spring环境中实现定时任务,同时结合动态代理技术,增强了任务的灵活性和可扩展性。对于日常开发来说,掌握这些技术可以帮助我们更高效地管理后台服务,提升系统的自动化...
在Java开发中,Spring框架是不可或缺的一部分,它提供了一种优雅的方式来管理应用程序的组件和依赖关系。而Spring的定时任务功能则允许我们在指定的时间执行特定的任务,极大地提升了工作效率。本篇将详细介绍如何在...
Spring定时器(TaskScheduler或ScheduledTasks): 在Spring框架中,我们可以利用`@Scheduled`注解和`TaskScheduler`接口来实现定时任务。`@Scheduled`注解可以直接在方法上,声明该方法为周期性执行的任务。例如: ...