- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我需要以固定的时间间隔运行批处理作业,并且能够在运行时更改此批处理作业的时间。为此,我遇到了 Spring 框架下提供的 @Scheduled
注释。但我不确定如何在运行时更改 fixedDelay 的值。我做了一些谷歌搜索,但没有发现任何有用的东西。
最佳答案
在spring boot中,可以直接使用一个应用属性!
例如:
@Scheduled(fixedDelayString = "${my.property.fixed.delay.seconds}000")
private void process() {
// your impl here
}
请注意,如果未定义属性,您也可以设置默认值,例如设置默认值“60”(秒):
@Scheduled(fixedDelayString = "${my.property.fixed.delay.seconds:60}000")
我发现的其他东西:
private
我发现能够方便地使用 private
可见性并以这种方式使用它:
@Service
public class MyService {
public void process() {
// do something
}
@Scheduled(fixedDelayString = "${my.poll.fixed.delay.seconds}000")
private void autoProcess() {
process();
}
}
作为 private
,计划的方法可以在您的服务本地,而不是成为您的服务 API 的一部分。
此外,这种方法允许 process()
方法返回一个值,而 @Scheduled
方法可能不会。例如,您的 process()
方法可能如下所示:
public ProcessResult process() {
// do something and collect information about what was done
return processResult;
}
提供一些关于处理过程中发生的事情的信息。
关于java - 如何在运行时更改 Spring 的 @Scheduled fixedDelay?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15250928/
我注意到在 Modelica(使用 Wolfram System Modeler 4.3)中集成延迟固定时间量的脉冲输入的数值问题: model PulseTest "Test FixedDelay
我需要以固定的时间间隔运行批处理作业,并且能够在运行时更改此批处理作业的时间。为此,我遇到了 Spring 框架下提供的 @Scheduled 注释。但我不确定如何在运行时更改 fixedDelay
我正在运行一个需要 5-10 秒才能完成的 spring boot 计划进程。完成后,60 秒后进程再次开始(请注意,我没有使用 fixedRate): @Scheduled(fixedDelay=6
不知道可能是这里的问题,只是向我的应用程序添加了一个标准的 cron 作业,如果它是硬编码的,它就可以工作! application.properties qronicle.data-retentio
我是一名优秀的程序员,十分优秀!