共计 1294 个字符,预计需要花费 4 分钟才能阅读完成。
package com.cy.pj.activity.service.impl;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.cy.pj.activity.dao.ActivityDao;
import com.cy.pj.activity.pojo.Activity;
import com.cy.pj.activity.service.ActivityService;
@Service // 扩占性能
public class ActivityServiceImpl implements ActivityService {
@Autowired
private ActivityDao activityDao;
@Override
public List<Activity> findActivitys() {
// TODO Auto-generated method stub
return activityDao.findActivitys();}
@Override
public int saveObject(Activity entity) {
// TODO Auto-generated method stub
int rows= activityDao.insertObject(entity);
// 心愿工夫到了 (endTime) 主动批改活动状态
// 解决方案: 基于任务调度去实现任务调度 - 基于工夫的设计主动执行工作)// 1 借助 java 中的 Timer 对象去实现
// ### 工作 ###调度工作###调度工作###调度工作### 调度任务调度任务调度任务调度任务调度
Timer timer = new Timer();// 此对象创立时会在底层启动一个线程。通过此县城对工夫进行监控
// 外面的类型是 timerTask 类型所以要 newTimerTask
timer.schedule(new TimerTask() {
@Override
public void run() {
// 此地位批改流动的状态信息
System.out.println("开始任务调度的执行");
// 通过映射获取到了 id 的值间接 getId 就行了
activityDao.updateState(entity.getId());
timer.cancel();// 完结调度工作 //cancel 砍搜}
}, entity.getEndTime());// 通过 entity 调用 getEndTime 办法
// 在此地位批改流动的状态信息
// 2 借助 java 线程池中的任务调度对象去实现 (ScheduledExecutorService) 去实现
// 3 借助第三方框架去实现
return rows;// 间接返回这个值了
}
// ### 工作 ###调度工作###调度工作###调度工作### 调度任务调度任务调度任务调度任务调度
}
正文完
发表至: springboot
2020-09-21