繁体   English   中英

Spring和Dropwizard:在应用程序完全启动后运行计划的任务

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM