通过@EnableScheduling注解开启对计划任务的支持:
定时器调度:
package com.numberone.system.job;
import com.numberone.system.domain.GlobalSupply;
import com.numberone.system.service.IGlobalSupplyService;
import com.numberone.system.service.ITaskService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;import java.text.SimpleDateFormat;
import java.util.Date;/*** 将redis中数据进行持久化*/@Component
public class RedisDataPersistenceJob {@Autowiredprivate ITaskService taskService;@Autowiredprivate IGlobalSupplyService globalSupplyService;/*** Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,* Cron有如下两种语法格式:* 1: Seconds Minutes Hours DayofMonth Month DayofWeek Year* 秒 分 时 几号 月 周几 年* 2: Seconds Minutes Hours DayofMonth Month DayofWeek [spring]* 秒 分 时 几号 月 周几** 0 0 2 1 * ? * 表示在每月的1日的凌晨2点调整任务* 0 15 10 ? * MON-FRI 表示周一到周五每天上午10:15执行作业*///定时任务标签//cron指定任务计划:什么时候执行doWork方法,周期是多少//定时任务时间间隔:没有标准,redis数据量决定,如果数据量较大, 时间周期适当缩短。@Scheduled(cron = "0 0 0/1 * * ? ")public void doWork(){taskService.updateTaskUpTime();System.err.println(date("执行修改任务置顶时长,执行时间为: "));}public static Object date(String msg){Date ss = new Date();SimpleDateFormat format0 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");String time = format0.format(ss.getTime());//这个就是把时间戳经过处理得到期望格式的时间time = format0.format(ss.getTime());return msg + time;}@Scheduled(cron = "0 0 0 1/1 * ? ")public void doWork2(){globalSupplyService.updateGlobalSupplyByPutTime();System.err.println(date("执行修改全球发布时间信息,执行时间为: "));}@Scheduled(cron = "0 0 0 1/1 * ? ")public void doWork3(){globalSupplyService.updateGlobalSupplyByStatus();System.err.println(date("执行修改全球发布时间状态,执行时间为: "));}}