作用

     延时任务用于指定多久之后去执行某个方法,比如考试开考后延时1小时强制收卷。fhs实现的延时任务是进程级的(重启之后未执行的任务对丢失),后期提供分布式延时任务服务。

demo

     首先写一个方法返回void 接收 Map 如下:

  1. /**
  2. * 删除优惠券的key
  3. * @param paramMap 参数map
  4. */
  5. public void removeCouponKey(Map<String,Object> paramMap)
  6. {
  7. redisCacheService.remove("park:coupon:" + paramMap.get("parkId")+ ":" + paramMap.get("plateNumber"));
  8. redisCacheService.remove("park:coupon:" + paramMap.get("parkId")+ ":" + paramMap.get("frontUserId"));
  9. }

     然后引入delayedTaskManager:

  1. /**
  2. * 延时队列
  3. */
  4. @Autowired
  5. private DelayedTaskManager delayedTaskManager;

     然后添加任务到延时任务管理器中 (第二个参数为毫秒):

  1. //半个小时候删除此优惠券的key
  2. delayedTaskManager.addTask(this::removeCouponKey,1000*60*30,paramMap);