这是一个关于最佳实践的非常普遍的问题,所以如果它不应该放在这里,我提前道歉。
我正在尝试使用 spring 任务调度程序设置任务计划以检查数据库中的哪些规则处于活动状态。这些规则将被添加到 hashmap 以供参考。到目前为止,我们init()在主应用程序类的 Dropwizard 的 run 方法中运行了一个方法。我设置了一个refresh方法,在运行后每 5 秒检查一次,使用 Spring XML 配置文件中的 Spring 任务调度程序:
<context:component-scan base-package="com.myproject.db"/>
<task:scheduled-tasks scheduler="scheduler">
<task:scheduled ref="ruleDAO" method="refreshRules" initial-delay="10000" fixed-delay="5000"/>
</task:scheduled-tasks>
<task:scheduler id="scheduler"/>
这在技术上确实有效。但是,我不喜欢在 XML 文件中硬编码 10 秒的初始延迟。我想将其设置为在init()完成后 10 秒运行,以确保两种方法之间没有交叉。无论如何在 XML 文件中执行此操作?