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秒运行一次,等等。
cron
MyTask#doSomething()
您可以像这样使cron表达式可配置
@Scheduled(cron ="${some.trigger}")
您可以从application.properties文件中为dev / prod配置文件设置此值。在测试模式下,您可以使用特定于配置文件的属性文件将此值设置为所需的任何值application-test.properties
application.properties
application-test.properties