在 运行 应用程序中调用预定异步 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()
方法。
我有一个异步方法,计划每天 运行 一次:
@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()
方法。