可以说我有一些rest api,其中参数是执行方法的时间,第二个参数是类中方法的名称。在spring-boot应用程序中在特定时间(仅一次)调用此方法的最佳方法是什么?
答案 0 :(得分:0)
首先,在您的spring-boot应用程序中启用计划:
@SpringBootApplication
@EnableScheduling
public class Application {
// ...
然后,每次用户调用REST方法时,注入TaskScheduler
bean并以编程方式计划任务:
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
}
}
但是,您还应该考虑限制对该方法的调用数量,否则恶意用户可能会计划很多任务并溢出任务池。