要获取指定的定时任务并删除,您可以使用ScheduledTaskRegistrar类的getScheduledTasks()方法来获取所有的定时任务列表,然后遍历列表找到指定的任务,并使用ScheduledTaskcancel()方法来取消任务。

以下是一个示例代码:

@Autowired
private ScheduledTaskRegistrar taskRegistrar;

public void removeScheduledTask(String taskName) {
    List<ScheduledTask> taskList = taskRegistrar.getScheduledTasks();
    
    for (ScheduledTask task : taskList) {
        String taskBeanName = ((MethodInvokingRunnable) task.getTask().getRunnable()).getTargetMethod().getName();
        
        if (taskName.equals(taskBeanName)) {
            task.cancel();
            break;
        }
    }
}

在上面的代码中,我们首先使用getScheduledTasks()方法获取所有的定时任务列表。然后使用MethodInvokingRunnable类获取任务的方法名,与指定的任务名进行比较。如果找到了匹配的任务,我们调用任务的cancel()方法来取消任务,并使用break语句退出循环。

您可以将以上代码放到一个适当的地方,例如一个Spring Bean中,并根据实际需求调用removeScheduledTask()方法来删除指定的定时任务

ScheduledTaskRegistrar获取指定定时任务并删除

原文地址: https://www.cveoy.top/t/topic/iYty 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录