天机学堂-定时任务处理已过期课程

首先在启动类添加@EnableScheduling开启定时任务调度

新建一个类处理定时任务比如LessonStatusCheckJob

 在上面添加@Component

定义一个方法处理过期课程

首先是先得到所有的课程集合排除已标注状态为过期的课程

第二步是将拿到的课程集合进行遍历筛选时间超出设定的时间将状态设置为过期

第三步是将集合全部更新

@Component
@Slf4j
@RequiredArgsConstructor
public class LessonStatusCheckJob {

    private  final ILearningLessonService lessonService;

    @Scheduled(cron = "0 * * * * ?")//每分钟执行一次 秒,分,时,日,月,周,年
    public void lessonStatusCheck(){
        //1.查询状态为未过期的课程  不区分用户
        List<LearningLesson> list = lessonService.list(Wrappers.<LearningLesson>lambdaQuery()
                .ne(LearningLesson::getStatus, LessonStatus.EXPIRED));
        LocalDateTime now = LocalDateTime.now();
        //2.判断是否过期
        for (LearningLesson lesson : list) {
        if (now.isAfter(lesson.getExpireTime())){
            lesson.setStatus(LessonStatus.EXPIRED);
        }
        }
        //3.批量更新
        lessonService.updateBatchById(list);
    }
}

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值