如何用java实现 查询所有的用户id 存储到redis中根据这些id去查找未汇报列表的内容如果填写工作汇报后 将填写用户id移除redis中点击未汇报时取出用户id查询数据在晚上23点59分中将还存在redis中的用户id使用insetr插入到数据库中的work_record表中
//查询所有用户id
List<Integer> userIdList = userDao.getAllUserId();
//将用户id存储到redis中
for(int userId : userIdList){
redisTemplate.opsForList().leftPush("report:userIds", userId);
}
//根据用户id查询未汇报列表内容
List<Report> reportList = reportDao.getUnreportedList(userIdList);
//填写工作汇报后,将填写用户id移除redis中
redisTemplate.opsForList().remove("report:userIds", 0, userId);
//点击未汇报时,取出用户id查询数据
List<Report> unreportedList = reportDao.getUnreportedList(redisTemplate.opsForList().range("report:userIds", 0, -1));
//晚上23点59分中将还存在redis中的用户id,使用insert插入到数据库中的work_record表中
String cronExpression = "0 59 23 * * ?";
scheduler.schedule(() -> {
List<Integer> userIds = redisTemplate.opsForList().range("report:userIds", 0, -1);
if(userIds != null && !userIds.isEmpty()){
workRecordDao.insert(userIds);
redisTemplate.delete("report:userIds");
}
}, new CronTrigger(cronExpression));
``
原文地址: https://www.cveoy.top/t/topic/cOMX 著作权归作者所有。请勿转载和采集!