SpringBoot启动类注解
@EnableScheduling
controller层定时触发任务
@Scheduled(cron = "0 0/1 * * * ?")
public void timedTask() throws ParseException {
List<Order> order = orderService.selectAll();
System.out.println(order);
Date date = new Date();
SimpleDateFormat sim1 = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US);
SimpleDateFormat sim2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String format1 = sim2.format(date);
for (int i = 0; i < order.size(); i++) {
String orderTime = String.valueOf(order.get(i).getOrderTime());
Date date1 = sim1.parse(orderTime);
String format = sim2.format(date1);
System.out.println(format);
long time = DifferenceTime.getTime(format,format1);
if (order.get(i).getOrderState().equals("待付款") && time>30){
System.out.println(order.get(i).getOrderId());
orderService.deleteById(order.get(i).getOrderId());
}
}
}
工具类,获取当前系统时间及下单时间的相差时间
import java.text.ParseException;
import java.text.SimpleDateFormat;
public class DifferenceTime {
public static long getTime(String oldTime,String newTime) throws ParseException {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
long NTime =df.parse(newTime).getTime();
long OTime = df.parse(oldTime).getTime();
long diff=(NTime-OTime)/1000/60;
return diff;
}
}