【问题标题】:Call a Scheduled Async bean method in a running application在正在运行的应用程序中调用 Scheduled Async bean 方法
【发布时间】:2019-12-07 16:49:37
【问题描述】:

我有一个计划每天运行一次的 Async 方法:

@Component
public class MyClass {

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

有没有办法在应用程序已经运行时触发doDailyTask() 用于测试目的,也许是通过使用 Groovy 和反射做一些聪明的事情?

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

【问题讨论】:

    标签: spring-boot spring-async


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-29
      • 1970-01-01
      • 2021-08-24
      • 2017-05-25
      • 2016-04-23
      • 1970-01-01
      相关资源
      最近更新 更多