如何在运行时安排特定时间执行方法
How to schedule executing method for certain time during runtime
假设我有一些休息 api 其中参数是执行方法的时间,第二个参数是 class 中方法的名称。在 spring-boot 应用程序中的特定时间(仅一次)调用此方法的最佳方式是什么?
首先,在您的 spring-boot 应用程序中启用调度:
@SpringBootApplication
@EnableScheduling
public class Application {
// ...
然后,注入 TaskScheduler
bean 并在每次用户调用 REST 方法时以编程方式安排任务:
public class MyScheduler {
@Autowired
private TaskScheduler scheduler;
public void scheduleNewCall(Date dateTime) {
scheduler.schedule(this::scheduledMethod, dateTime);
}
public void scheduledMethod() {
// method that you wish to run
}
}
但是,您还应该考虑限制对此方法的调用量,否则恶意用户可能会安排大量任务并溢出任务池。
假设我有一些休息 api 其中参数是执行方法的时间,第二个参数是 class 中方法的名称。在 spring-boot 应用程序中的特定时间(仅一次)调用此方法的最佳方式是什么?
首先,在您的 spring-boot 应用程序中启用调度:
@SpringBootApplication
@EnableScheduling
public class Application {
// ...
然后,注入 TaskScheduler
bean 并在每次用户调用 REST 方法时以编程方式安排任务:
public class MyScheduler {
@Autowired
private TaskScheduler scheduler;
public void scheduleNewCall(Date dateTime) {
scheduler.schedule(this::scheduledMethod, dateTime);
}
public void scheduledMethod() {
// method that you wish to run
}
}
但是,您还应该考虑限制对此方法的调用量,否则恶意用户可能会安排大量任务并溢出任务池。