如何在运行时的特定时间安排执行方法

时间:2019-02-27 08:39:24

标签: java spring-boot schedule

可以说我有一些rest api,其中参数是执行方法的时间,第二个参数是类中方法的名称。在spring-boot应用程序中在特定时间(仅一次)调用此方法的最佳方法是什么?

1 个答案:

答案 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
    }

}

但是,您还应该考虑限制对该方法的调用数量,否则恶意用户可能会计划很多任务并溢出任务池。