config部分
package com.ysd.demo1.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.text.SimpleDateFormat;
/**
* @author huhu
*/
@Configuration
public class ConfigMyQuartz {
@Bean("dateFormat")
public SimpleDateFormat dateFormat(){
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
}
}
quartz部分
package com.ysd.demo1.quartz;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ysd.demo1.entity.Card;
import com.ysd.demo1.service.ICardService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
/**
* @author huhu
*/
@Component
@EnableScheduling
public class MyQuartz {
@Autowired
private ICardService iCardService;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
int n = 0;
/**
* 每天23点进行批量修改未进行离开操作 的任务 ,测试cron可以调成 每30秒执行
*/
@Scheduled(cron = "* * */23 * * *")
public void goOutQuartz() {
List<Card> list = iCardService.list(new QueryWrapper<Card>().isNull("out_Time"));
for(int i =0;i<list.size();i++){
//日期修改器
Calendar c = Calendar.getInstance();
c.setTime(list.get(i).getInTime());
//根据进入时间+1小时
c.add(Calendar.HOUR,1);
Date date = c.getTime();
//设置表中离开时间
list.get(i).setOutTime(date);
//设置表中是否在线状态
list.get(i).setCenterState(0);
}
Boolean re = iCardService.updateBatchById(list);
if(re==true){
System.out.println("任务调度批量修改执行次数:"+n++);
}else{
System.out.println("任务调度批量修改执行次数:"+n);
}
}
}
pom.xml部分
<!-- 任务调度器 -->
<!-- SpringQuartz依 赖 -->
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.1</version>
<exclusions>
<exclusion>
<artifactId>slf4j-api</artifactId>
<groupId>org.slf4j</groupId>
</exclusion>
</exclusions>
</dependency>
示例部分