我有一个使用 Spring 3 进行依赖注入(inject)的简单应用程序。我有一个供用户查看的 JFrame 和一些用于与后端服务器同步和本地数据库维护的后台任务。
这是我的应用程序上下文的相关部分:
<task:scheduler id="scheduler" pool-size="1"/>
<task:scheduled-tasks scheduler="scheduler">
<task:scheduled ref="synchronizer" method="incrementalSync" fixed-delay="600000"/>
... more tasks ...
</task:scheduled-tasks>
<bean id="mainFrame" class="nl.gdries.myapp.client.ui.MainFrame">
... properties and such ...
</bean>
当我启动这个 applicationContext 时,即使我的 UI 正在加载,调度程序也会立即开始执行后台任务。因为第一个任务在开始时相当繁重,所以我希望它等待 UI 完全加载并显示,然后再开始执行。
有谁知道如何告诉 Spring 延迟执行计划任务,直到我选择的时刻?
最佳答案
这似乎已被排除在 <task:scheduled>
之外。 bean 定义,这是我上周才注意到的。
但请记住,<task:...>
定义只是快捷方式,您始终可以使用显式方法,通过定义 ScheduledExecutorFactoryBean
, 嵌套 ScheduledExecutorTask
bean 。这为您提供了更精细的控制,包括 initialDelay
.
关于java - 延迟任务:scheduler first execution in Spring 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2080717/