执行异步任务的时候 有循环操作的,如果要停止这个循环任务,可以在每次循环的时候加个判断去读取redis存的唯一值 如果变动了就结束循环

添加任务前给这个任务存一个唯一标识到redis redis用hash类型

 //todo  添加任务的时候给任务一个唯一标识存入redis  hash类型  然后每次死循环前去redis查询这个值  如果这个值改动了 就停止任务
        JedisUtil.hset("taskStop",taskId.toString(),"1");

执行任务端在每次循环内查询redis的值


  boolean flag = true;
            while (flag) {//死循环遍历数组 直到redis的任务数据全部取完
                //添加任务的时候给任务一个唯一标识存入redis  hash类型  然后每次死循环前去redis查询这个值  如果这个值改动了 就停止任务
                //专门写一个接口来控制这个存在redis里的任务标识
                String taskStop = JedisUtil.hget("taskStop", String.valueOf(taskId));
                if(!StrUtil.equals("1",taskStop)){//如果redis的标识不等于2后停止while循环
                    LogUtils.info("====停止 "+taskId+" 任务====");
                    flag = false;
                }
                }
上一篇 下一篇