mem*_*und 11 java spring spring-boot
我怎样才能在特定的配置文件中启用预定作业?
伪代码:
@Scheduled(cron = "${job.cron}")
@Profile("prod")
public void runJob() {
}
Run Code Online (Sandbox Code Playgroud)
那可能吗?
Fed*_*ner 14
每个配置文件应该有一个bean:
@Component
@Profile("prod")
public class ProdJob {
@Scheduled(cron = "${job.cron}")
public void runJob() {
}
}
@Component
@Profile("beta")
public class BetaJob {
@Scheduled(cron = "${job.cron}")
public void runJob() {
}
}
Run Code Online (Sandbox Code Playgroud)
您可以使用以下方法来完成。几乎和您已经做的一样,但是添加冒号,然后添加如果未找到属性则应选择的默认值。这里我们使用“-”作为 cron 禁用表达式:
@Scheduled(cron = "${job.cron:-}")
public void runJob() {
}
Run Code Online (Sandbox Code Playgroud)
然后在所需的配置文件中定义 cron 表达式(例如使用属性文件)。
这是 application-prod.properties 内容:
job.cron=*/30 * * * * *
Run Code Online (Sandbox Code Playgroud)
对于产品配置文件,它将每 30 秒启动一次,对于所有其他配置文件,它将关闭。
| 归档时间: |
|
| 查看次数: |
5025 次 |
| 最近记录: |