关于停止任务

来源:4-3 实现零重启自由编排任务的定时管理器

无解的游戏

2023-08-24

这里好像mapkey停止了,并没有将它清理掉,后面无限塞入,会有啥问题吗?

public void stopTask(String key) {
        // 参数校验
        if (StringUtils.isBlank(key)) {
            return;
        }
        ScheduleTaskHolder holder = cache.get(key);
        if (Objects.isNull(holder)) {
            return;
        }

        ScheduledFuture scheduledFuture = holder.getScheduledFuture();
        boolean cancel = scheduledFuture.cancel(true);
        if (cancel) {
            log.info("{} 停止成功!唯一标识为: {}", holder.getScheduleTask().getName(), key);
        } else {
            log.warn("{} 停止失败!唯一标识: {}", holder.getScheduleTask().getName(), key);
        }
    }

这里好像只是把对应key的任务停止了, map里的还存在着

map内容

[
	{"key": "xxxxxx1": "value": "xxxxxxx"}
]

下一次改变任务,重新启动,key就会变的不一样,再存储一个新的key进去

停止新启动一个之后map内容

[
	{"key": "xxxxxx1": "value": "xxxxxxx"},
	{"key": "xxxxxx2": "value": "xxxxxxx"}
]

会存在这样的后续新增的key都是UUIDUtil 生成的不会覆盖上一次的,而是每次都是新增一个塞进去

写回答

2回答

RubinChu

2023-08-27

明白了 同学了已在成功取消之后 把缓存清掉哈   加一个清理的动作优化一下

0
0

RubinChu

2023-08-25

会覆盖的哈,要是好不是很明白,把问题的代码块截全一些哈

0
2
再坚持坚持一下
回复
无解的游戏
回复 无解的游戏:这里说的cache 这个变量里面还存在上一次的key和value吗?
2024-08-08
共2条回复

SpringBoot+Vue3+Element Plus打造私人分布式存储系统

SpringBoot+Vue3+Element Plus 仿百度网盘实战

274 学习 · 346 问题

查看课程