1.在service 层写一个task
需要标记注解 @component
@Component
public class MyTask {
@Autowired
RedisTemplate redisTemplate;
@Autowired
FloorRep floorRep;
//mysql数据增量到es
//10秒运行 ,每隔40秒执行一下
// @Scheduled(initialDelay = 1000,fixedDelay = 4*10000)
@Scheduled(cron = "0 28 9 ? * * ")
public void fromRedisToEs(){
System.out.println("定时任务启动了-----");
List addFloors = redisTemplate.opsForList().range("addFloors", 0, -1);
if (null!=addFloors&&addFloors.size()>0){
//添加
floorRep.saveAll(addFloors);
redisTemplate.delete("addFloors");
}
}
}
scheduled注解里面参数的值 * 表示所有的值 在分上表示没一分钟都执行
? 表示不指定值
- 表示区间 在小时上设置 10-12 表示10,11,12点都执行
/用于递增触发 在秒上面写 */5 每隔5秒触发
没隔5秒触发 */5 * * * * ?
每隔1分钟执行一次 0 */1 * * * ?
2.reids中的内容 是从ack中获取的