定时任务结合cron表达式使用
package com.fskj.institution.module.quartz.jobs;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.fskj.institution.module.business.entity.CollectCommentConfig;
import com.fskj.institution.module.business.service.CollectCommentConfigService;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import javax.annotation.Resource;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.Date;
import java.util.List;
/**
* @author: MaShiWei
* @Description: 定时器控制 首页意见征集 结束时间
*/
@Configuration //1.主要用于标记配置类,兼备Component的效果。
@EnableScheduling // 2.开启定时任务
public class SaticScheduleTask {
@Resource
private CollectCommentConfigService configService;
//3.添加定时任务 每天晚上0点执行一次
@Scheduled(cron = "0 0 0 * * ?")
//或直接指定时间间隔,例如:5秒
//@Scheduled(fixedRate=5000)
private void configureTasks() {
// 业务逻辑代码
QueryWrapper<CollectCommentConfig> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("is_del",0);
List<CollectCommentConfig> list = configService.list(queryWrapper);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
String now = LocalDate.now()+"";
for (CollectCommentConfig collectCommentConfig : list) {
Date endDate = collectCommentConfig.getEndDate();
try {
Date parse = simpleDateFormat.parse(now);
if (parse.after(endDate)) {
collectCommentConfig.setCollectStatus(0);
configService.updateById(collectCommentConfig);
}
} catch (ParseException e) {
e.printStackTrace();
}
}
}
}