@Configuration
@ConditionalOnProperty(name = "schedule.shutdown")
public class ScheduleCloseConf implements SchedulingConfigurer {
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
Field[] declaredFields = taskRegistrar.getClass().getDeclaredFields();
List<Field> list = Arrays.stream(declaredFields)
.filter(f -> List.class.isAssignableFrom(f.getType()))
.collect(Collectors.toList());
for (Field f : list) {
try {
f.setAccessible(true);
List<Object> o = (List<Object>) f.get(taskRegistrar);
if (Objects.nonNull(o)) {
//清除所有扫描到的定时任务
o.clear();
}
} catch (Throwable e) {
e.printStackTrace();
}
}
}
}
配置schedule.shutdown=true