这篇文章将介绍怎么通过spring去做调度任务。
构建工程
创建一个Springboot工程,在它的程序入口加上@EnableScheduling,了解springcloud架构可以加求求:三五三六二四七二五九,开启调度任务。
@SpringBootApplication @EnableScheduling public class SpringbootSchedulingTasksApplication { public static void main(String[] args) { SpringApplication.run(SpringbootSchedulingTasksApplication.class, args); } }
创建定时任务
创建一个定时任务,每过5s在控制台打印当前时间。
@Component public class ScheduledTasks { private static final Logger log = LoggerFactory.getLogger(ScheduledTasks.class); private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); @Scheduled(fixedRate = 5000) public void reportCurrentTime() { log.info("The time is now {}", dateFormat.format(new Date())); } }
通过在方法上加@Scheduled注解,表明该方法是一个调度任务。 @Scheduled(fixedRate = 5000) :上一次开始执行时间点之后5秒再执行 @Scheduled(fixedDelay = 5000) :上一次执行完毕时间点之后5秒再执行 @Scheduled(initialDelay=1000, fixedRate=5000) :第一次延迟1秒后执行,之后按fixedRate的规则每5秒执行一次 @Scheduled(cron=” /5 “) :通过cron表达式定义规则,什么是cro表达式,自行搜索引擎。 测试 启动springboot工程,控制台没过5s就打印出了当前的时间。
2017-04-29 17:39:37.672 INFO 677 — [pool-1-thread-1] com.forezp.task.ScheduledTasks : The time is now 17:39:37
2017-04-29 17:39:42.671 INFO 677 — [pool-1-thread-1] com.forezp.task.ScheduledTasks : The time is now 17:39:42
2017-04-29 17:39:47.672 INFO 677 — [pool-1-thread-1] com.forezp.task.ScheduledTasks : The time is now 17:39:47
2017-04-29 17:39:52.675 INFO 677 — [pool-1-thread-1] com.forezp.task.ScheduledTasks : The time is now 17:39:52
2017-04-29 17:39:42.671 INFO 677 — [pool-1-thread-1] com.forezp.task.ScheduledTasks : The time is now 17:39:42
2017-04-29 17:39:47.672 INFO 677 — [pool-1-thread-1] com.forezp.task.ScheduledTasks : The time is now 17:39:47
2017-04-29 17:39:52.675 INFO 677 — [pool-1-thread-1] com.forezp.task.ScheduledTasks : The time is now 17:39:52
相关推荐
在IT行业中,Spring Cloud Schedule是Spring Cloud框架的一个重要组件,用于构建分布式系统中的定时任务。本文将深入探讨如何使用Spring Cloud Schedule与MyBatis相结合,实现对MySQL数据库的读写操作,并设定按照...
分布式任务调度框架Elastic-Job-Lite是当当网推出的一款轻量级无中心化任务调度解决方案,旨在解决大规模分布式环境下的任务调度问题。这款框架的设计理念是将任务的执行与调度分离,使得任务调度器无需关注具体的...
总结来说,Spring Boot 2.1.6的定时任务功能,配合集群部署和任务持久化策略,能够实现高效、稳定的分布式定时任务系统。在实际开发中,我们需要结合具体的业务需求和环境,灵活选择和设计合适的方案。
在SpringBoot中定义定时任务,我们创建一个实现了`org.springframework.scheduling.Trigger`和`org.springframework.scheduling.TaskExecutor`接口的类,或者直接使用Quartz的`CronTrigger`或`SimpleTrigger`。...
该项目是一款基于Spring Boot Scheduling的Java分布式动态定时任务设计源码,包含118个文件,其中包括96个Java源文件、12个XML配置文件、3个YAML配置文件、2个Markdown文件、1个Git忽略文件、1个LICENSE文件、1个SQL...
本文主要探讨如何使用Quartz作为分布式定时任务的解决方案,并且着重介绍了其在Spring框架下的集成与应用。 ### 引入背景 邮易购系统面临定时任务的挑战,原先采用的是Linux操作系统内置的`cron`工具来调用shell...
Spring Framework 自从 3.0 版本起,引入了 TaskExecution 和 TaskScheduling 模块,为开发者提供了更简洁的方式来处理定时任务。TaskScheduler 接口允许我们创建一个定时任务调度器,可以使用 cron 表达式或者固定...
要开始创建一个基于Spring Boot的定时任务,首先需要在项目中引入Spring Boot的`spring-boot-starter-web`和`spring-boot-starter-quartz`或者`spring-boot-starter-task`依赖。如果使用`spring-boot-starter-task`...
Spring框架提供了一系列工具来支持定时任务的实现,其中包括Spring自带的`spring-task`模块和第三方的Quartz库。下面我们将详细探讨这两种方式以及如何通过注解和非注解的方式进行配置。 首先,`spring-task`是...
Spring的定时任务功能是通过`org.springframework.scheduling`包中的类来实现的,主要涉及`TaskScheduler`和`TaskExecutor`接口。`TaskScheduler`用于定时任务的调度,而`TaskExecutor`则处理并发执行的任务。Spring...
Gantt图表是项目管理中常用的一种工具,用于可视化地展示项目的进度计划和任务分配。Excel中的Gantt图表插件提供了一种便捷的方式来创建和管理这些图表,尤其对于那些不经常使用专业项目管理软件的用户来说非常实用...
在Spring框架中,定时任务是实现系统自动化运行关键任务的重要工具。Spring提供了多种方式来创建和管理定时任务,包括基于接口的TaskExecutor、基于注解的@Scheduled和集成Quartz Scheduler。下面将详细讲解这三种...
在Spring中,我们可以通过实现`org.springframework.scheduling.quartz.JobDetailBean`和`org.springframework.scheduling.quartz.CronTriggerBean`来定义任务和触发器。JobDetailBean用于描述任务的属性,如任务类...
在Spring Boot框架中,`springboot-scheduler`是用于实现定时任务的重要组件,它基于Spring的Task Execution和Scheduling模块,使得在应用中添加和管理定时任务变得简单易行。这个"springboot-scheduler定时任务学习...
首先,我们要了解Spring 3.0中的定时任务主要依赖于`org.springframework.scheduling`包。这个包提供了`TaskExecutor`接口用于异步执行任务,而`TaskScheduler`接口则用于定时任务的调度。在Spring配置中,可以定义...
"scheduling定时任务框架"显然是一种专为此目的设计的工具,它简化了开发人员创建和管理定时任务的过程。让我们深入探讨这个框架的一些关键特性、工作原理以及如何利用它来实现高效的任务调度。 1. **定时任务的...
Spring Boot集成了Spring Framework的TaskExecution和TaskScheduling模块,使得我们可以方便地创建和管理定时任务。本文将深入探讨如何在Spring Boot中实现动态配置定时任务,并实现不重启项目就能开关或重启任务...
在“5-CPU-scheduling.rar_scheduling”这个主题中,我们将深入探讨操作系统中的CPU调度基础,这是操作系统设计和实现的重要一环。 CPU调度是指操作系统如何决定哪个进程应该在什么时候运行,以及运行多长时间。它...
**Spring-task定时任务详解** Spring-task是Spring框架的一部分,它为开发者提供了强大的任务调度和执行功能,使得在Java应用中实现定时任务变得简单易行。本文将深入探讨Spring-task的注解方式和XML配置方式的使用...