本文实例讲述了Spring计划任务用法。分享给大家供大家参考,具体如下:
一 点睛
从Spring3.1开始,计划任务在Spring中的实现变得异常的简单。只需要下面两步。
1 通过在配置类上注解@EnableScheduling来开启对计划任务的支持。
2 在要执行计划任务的方法上注解@Scheduled,声明这是一个计划任务。
Spring通过@Scheduled支持多种类型的计划任务,包含cron、fixDelay、fixRate等。
二 实战
1 配置类
package com.wisely.highlight_spring4.ch3.taskscheduler; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.annotation.EnableScheduling; @Configuration @ComponentScan("com.wisely.highlight_spring4.ch3.taskscheduler") @EnableScheduling //1 public class TaskSchedulerConfig { }
2 计划任务执行类
package com.wisely.highlight_spring4.ch3.taskscheduler; import java.text.SimpleDateFormat; import java.util.Date; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; @Service public class ScheduledTaskService { private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); @Scheduled(fixedRate = 5000) //该方法是计划任务,使用fixedRate属性每隔固定时间执行。 public void reportCurrentTime() { System.out.println("每隔五秒执行一次 " + dateFormat.format(new Date())); } @Scheduled(cron = "0 28 11 ? * *" ) //每天11点28分执行 public void fixTimeExecution(){ System.out.println("在指定时间 " + dateFormat.format(new Date())+"执行"); } }
3 主类
package com.wisely.highlight_spring4.ch3.taskscheduler; import org.springframework.context.annotation.AnnotationConfigApplicationContext; public class Main { public static void main(String[] args) { AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(TaskSchedulerConfig.class); } }
三 运行结果
每隔五秒执行一次 19:58:50
每隔五秒执行一次 19:58:55
每隔五秒执行一次 19:59:00
每隔五秒执行一次 19:59:05
每隔五秒执行一次 19:59:10
每隔五秒执行一次 19:59:15
每隔五秒执行一次 19:59:20
每隔五秒执行一次 19:59:25
每隔五秒执行一次 19:59:30
每隔五秒执行一次 19:59:35
每隔五秒执行一次 19:59:40
每隔五秒执行一次 19:59:45
每隔五秒执行一次 19:59:50
每隔五秒执行一次 19:59:55
每隔五秒执行一次 20:00:00
每隔五秒执行一次 20:00:05
更多关于java相关内容感兴趣的读者可查看本站专题:《Spring框架入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。
我们有一个Spring Boot应用程序,并有计划的任务。 我们希望在多个服务器上部署我们的应用程序,因此将有多个应用程序实例。 如何将 Spring 配置为仅在指定的服务器上运行计划任务?
我使用spring boot with@Scheduled已经有一段时间了,但是最近我发现有一个潜在的危险威胁,如下所述:我发现当应用程序运行和计划任务运行几次时,有很多线程等待但没有完成,这在thread stacktrace中显示为'kill-3'。为了清除可能导致此问题的任何内容,我做了一个完全虚设的任务: 这是我的日志: 20151102 11:54:50.660信息池-3-线程-2---
我想每天使用Spring Boot发送电子邮件,用户指定发送时间,我使用石英来安排我的工作。电子邮件的收件人有(id、emailAddress、截止日期)电子邮件将发送给截止日期=今天X...(用户指定X)。例如:用户指定X是1号,所以我们对明天有截止日期的人感兴趣。 第1天:应用程序向截止日期为今天1的人发送电子邮件。。第二天:我希望应用程序在第二天将电子邮件发送给新的收件人,但使用下面的代码,
有一个非常标准的Spring Boot(1.3.5)应用程序。 使用(在主应用程序入口点和注释类上尝试)启用调度。 使用方法创建了一个简单的类(简单的fixedDelay时间表)。 计划任务执行两次(始终)。 从我目前收集的信息来看,这可能是因为加载了两个上下文,然后两次拿起了我的豆子。好啊既然所有配置基本上都是隐藏的Spring Boot魔法,那么我该如何修复/防止这种双重执行呢? 框架版本:
计划任务系统使用说明 新版计划任务为用户提供了以下功能 创建一个计划任务 修改一个计划任务 删除计划任务 查看一个namespace的所有计划任务 查看一个namespcae的某个计划任务详细内容 查看一个计划任务的执行状况 查看任务的日志 查看创建的计划任务列表和某个计划任务的详细信息。 点击计划任务v2,进入计划任务列表,在这里可以看到用户名下的所有计划任务,点击一个计划任务,可以看到该计划任
亚马逊宣布了AWS Lambda(http://AWS.Amazon.com/Lambda/)。 产品说明包括: 计划任务 AWS Lambda函数可以由外部事件计时器触发,因此可以在定期计划的维护时间或非高峰时段运行函数。例如,您可以触发一个AWS Lambda函数,在非繁忙时间执行每晚的存档清理。 当我读到这篇文章时,我明白了我终于可以有一种方法来始终如一地完成“类似朋党”的任务。我想每天下午