何为定时任务
举个例子我有一个网站就叫他生活小助手吧,我的这个小助手有一个天气查询的功能,那么我的天气数据从何而来?实现方法一写一个爬虫程序去爬取中国气象台的天气信息,我觉得不大行。方法二使用第三方接口直接拿到返回结果做渲染。 但是像天气这种实时的数据肯定是要实时更新的,但是我们的程序对外提供的接口都是需要手动调用的,我的小助手网站难道需要我每个小时手动去调一次京东万象数据平台的接口吗?这当然是不现实的,所以我需要我的程序没过一个小时去自动执行方法去调用 京东万象数据平台的接口拿到返回结果保存到类似于Redis这种非关系型数据库中。能够实现这个功能的角色就是接下来要讲到的定时任务。 Spring的Schedule我先不介绍他的概念,直接上代码你可能都不用解释它是什么了
一.引入依赖<dependency> <groupId>org.springframeworkgroupId> <artifactId>spring-context-supportartifactId>dependency>
二.编写你想要被定时任务执行的方法
package com.jmy.schedule;import org.springframework.scheduling.annotation.Scheduled;import org.springframework.stereotype.Component;/*Scheduled 定时任务器 */public class ScheduledDemo {
public void sayHello(){
System.out.println("Hello! Scheduled!!!"); }}
三.将被执行方法所在类交由Spring的IOC容器管理
@Component // 看这里!!!!!!public class ScheduledDemo {
public void sayHello(){
System.out.println("Hello! Scheduled!!!"); }}
四.定时(任务什么时候被执行)
@Componentpublic class ScheduledDemo {
@Scheduled(cron = "0/2 * * * * ?") // 看我!!!!!!