优化代码: public static boolean stop(Long id) { TriggerTask tt = triggerTaskMap.get(id); if (tt != null) { Set<ScheduledTask> scheduledTasks = scheduledTaskRegistrar.getScheduledTasks(); for (ScheduledTask st : scheduledTasks) { Task myTask = (Task)st.getTask().getRunnable(); if(myTask.getId().equals(id)){ st.cancel(); return true; } break; } } return false; }
时间: 2023-05-27 16:02:17 浏览: 82
public static boolean stop(Long id) {
TriggerTask tt = triggerTaskMap.get(id);
if (tt != null) {
Set<ScheduledTask> scheduledTasks = scheduledTaskRegistrar.getScheduledTasks();
for (ScheduledTask st : scheduledTasks) {
Task myTask = (Task) st.getTask().getRunnable();
if (myTask.getId().equals(id)) {
st.cancel();
return true;
}
}
}
return false;
}
优化后的代码:
public static boolean stop(Long id) {
TriggerTask tt = triggerTaskMap.get(id);
if (tt == null) {
return false;
}
for (ScheduledTask st : scheduledTaskRegistrar.getScheduledTasks()) {
Task myTask = (Task) st.getTask().getRunnable();
if (myTask.getId().equals(id)) {
st.cancel();
return true;
}
}
return false;
}
优化说明:
1. 避免不必要的代码执行,如果tt为null,直接返回false。
2. 简化循环代码,直接在循环条件中获取Set集合,避免单独使用一个变量来引用它。
3. 将break语句移动到if语句中,在满足条件后立即退出循环。现在代码可以正确取消调度任务。
阅读全文