定時任務

1.在applicationContext.xml添加task定時任務的約束

xmlns:task="http://www.springframework.org/schema/task"

http://www.springframework.org/schema/task 

http://www.springframework.org/schema/task/spring-task-4.3.xsd">

2.創建定時任務類 com.zq.job.TaskJob.java並把job包設爲自動掃描的包

3.寫定時任務類

package com.cyw.job;

import java.util.Date;

import org.apache.tools.ant.util.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import com.cyw.service.UserService;

//定時任務類

@Component
public class TaskJob {
	@Autowired
	UserService userService;
	
	@Scheduled(cron="0/10 * * * * ?")
	public void userGrade(){
		System.out.println("定時器執行時間"+DateUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss"));
		userService.updateGrade();
	}
}

案例:

滿足條件後第二天自動升級商城用戶級別

在數據庫添加相應字段,必要的設默認值

User類中添加相應屬性

定時更新用戶等級(上面代碼已寫)

UserServiceImpl中寫updateGrade()方法(其他的自動添加)

@Override
	public void updateGrade() {
		List<Map<String,Object>> gradeList = new ArrayList<Map<String,Object>>();
		Map<String,Object> map = new HashMap<String, Object>();
		map.put("grade", "1");//暫時先用固定值
		map.put("total", "0");
		gradeList.add(map);
		
		map = new HashMap<String, Object>();
		map.put("grade", "2");
		map.put("total", "5000");
		gradeList.add(map);
		
		map = new HashMap<String, Object>();
		map.put("grade", "3");
		map.put("total", "20000");
		//查詢符合升級條件的用戶List<User>
		List<User> users = userDao.findByTotal(gradeList);
		//更新用戶級別+1
		if(users!=null&&users.size()>0){
			userDao.updateGrade(users);
		}
	}

sql(查找符合條件的、更新等級)

(注意mybits中的大於小於號寫法)

附:定時任務參數詳解

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章