Java 如何添加或删除spring框架';s调度器动态(服务器处于运行状态)与数据库数据?

Java 如何添加或删除spring框架';s调度器动态(服务器处于运行状态)与数据库数据?,java,spring,spring-boot,oracle-sqldeveloper,spring-scheduled,Java,Spring,Spring Boot,Oracle Sqldeveloper,Spring Scheduled,我正在与Spring boot和Oracle sql developer合作。 我想实现类似“用户管理调度程序”的功能 用户可以在网页上添加或删除计划程序。 如果用户添加“每3分钟运行一次调度程序”,则db表可能 s_id | s_cron | s_detail sid000001 | 0 0/3 * * * ? | do job 1 spring调度器必须每3分钟执行一次“作业1” 如果,另一个用户还添加了“每1分钟运行一次调度程序” s_id | s_cron | s_detail sid

我正在与Spring boot和Oracle sql developer合作。 我想实现类似“用户管理调度程序”的功能

用户可以在网页上添加或删除计划程序。 如果用户添加“每3分钟运行一次调度程序”,则db表可能

s_id | s_cron | s_detail
sid000001 | 0 0/3 * * * ? | do job 1
spring调度器必须每3分钟执行一次“作业1”

如果,另一个用户还添加了“每1分钟运行一次调度程序”

s_id | s_cron | s_detail
sid000001 | 0 0/3 * * * ? | do job 1
sid000002 | 0 0/1 * * * ? | do job 2
spring调度器必须每3分钟执行一次“作业1”,并且必须每1分钟同时执行一次“作业2”

问题是:如何在Spring boot中实现它? Spring服务必须动态(或自动)添加/删除调度程序,并在服务器运行时添加/删除db数据。


请给我一些帮助。

如果您想动态调度任务,您可以在没有spring的情况下使用ExecutorService,特别是ScheduledThreadPoolExecutor

Runnable task  = () -> doSomething();
ScheduledExecutorService executor = 
Executors.newScheduledThreadPool(Runtime.getRuntime().availableProcessors());
// Schedule a task that will be executed in 120 sec
executor.schedule(task, 120, TimeUnit.SECONDS);

// Schedule a task that will be first run in 120 sec and each 120sec
// If an exception occurs then it's task executions are canceled.
executor.scheduleAtFixedRate(task, 120, 120, TimeUnit.SECONDS);

// Schedule a task that will be first run in 120 sec and each 120sec after 
the last 
execution
// If an exception occurs then it's task executions are canceled.
executor.scheduleWithFixedDelay(task, 120, 120, TimeUnit.SECONDS);