小编典典

使Spring Boot cron任务可配置

spring-boot

Spring Boot允许您创建后台“ cron式”任务,如下所示:

@Component
public class MyTask {
    // Every hour on the hour
    @Scheduled(cron = "0 0 0/1 1/1 * ? *")
    public void doSomething() {
        // blah whatever
    }
}

这使得自动集成测试有点困难!我不必只花一个小时就可以运行集成测试,而不必等待我的任务在一个小时之内运行时会发生什么。我也不必等待近一个小时运行测试,以便可以在小时内确认正确的行为!

有没有办法使这些cron值可配置?这样,如果我想以“测试模式”运行我的应用程序,则可以安排该MyTask#doSomething()方法每30秒运行一次,等等。


阅读 487

收藏
2020-05-30

共1个答案

小编典典

您可以像这样使cron表达式可配置

@Scheduled(cron ="${some.trigger}")

您可以从application.properties文件中为dev /
prod配置文件设置此值。在测试模式下,您可以使用特定于配置文件的属性文件将此值设置为所需的任何值application-test.properties

2020-05-30