在 运行 应用程序中调用预定异步 bean 方法

Call a Scheduled Async bean method in a running application

我有一个异步方法,计划每天 运行 一次:

@Component
public class MyClass {

    //myCronProperty set to "0 25 20 * * *" in application.properties
    @Scheduled(cron="{myCronProperty}")
    @Async
    @Override
    public void doDailyTask() {
        //Do work here
    }
}

当应用程序已经 运行ning 时,有没有一种方法可以触发 doDailyTask() 用于测试目的,也许可以通过 Groovy 和反射做一些巧妙的事情?

我想我总是可以在我的 application.properties 文件中将 cron 属性 调整为未来 1 分钟,然后重新启动应用程序 - 但只是想知道是否有更聪明的方法?

您应该能够简单地将组件注入另一个 class,例如 @RestController,并在那里调用 doDailyTask() 方法。