[英]Spring and Dropwizard: Running a scheduled task after app has fully started up
这是关于最佳做法的一个非常笼统的问题,因此,如果不应该在这里发言,我先向您道歉。
我正在尝试使用Spring Task Scheduler设置任务计划,以检查数据库中哪些规则处于活动状态。 这些规则将添加到哈希图中以供参考。 截至目前,我们在主应用程序类中的Dropwizard的run方法中运行了一个init()
方法。 我已经设置了一个refresh
方法,使用Spring XML配置文件中的Spring任务计划程序,每隔5秒检查一次:
<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文件中可以执行此操作吗?
如果您的init()
方法是PostConstruct
,则由于ScheduledAnnotationBeanPostProcessor
,调度程序将一直等到init()
完成之后。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.