2

我有一个用 Spring 制作的仪表板,它必须控制一些任务执行。基本思想是有一个线程定期将此任务发送到远程跟踪器。我怎样才能实例化这个线程?我一直在阅读一些内容,有些人说使用线程不是一个好主意。这会导致 Spring 生命周期出现问题吗?还有另一种方法可以定期调用方法吗?

4

6 回答 6

5

Spring 支持任务调度。在此处查找更多信息:

例如,您可以在应用程序上下文中配置计划任务,如下所示:

<task:scheduled-tasks scheduler="myScheduler">
  <task:scheduled ref="beanA" method="methodA" fixed-delay="5000"/>
</task:scheduled-tasks>

<task:scheduler id="myScheduler" pool-size="10"/>
于 2013-05-02T11:26:32.860 回答
2

使用 Spring 时,您可以尝试 Spring 自己的 Task Scheduling。一个很好的教程可以在这里找到。

我已经用过这个了,而且效果很好。

于 2013-05-02T11:27:53.733 回答
2

如果您需要一个与 spring 完美配合的强大任务调度程序,请使用石英调度程序。您可以配置用于调度程序的线程数等等。这里没有线程控制令人头疼的问题,quartz scheduler 管理得很好。

它可以在春季进行配置,以处理非常复杂的时间表,例如

每月 1 日凌晨 12 点至凌晨 4 点,每分钟触发一次。

http://quartz-scheduler.org/了解更多信息。

于 2013-05-02T12:48:39.450 回答
0

您可以使用@Scheduled 注释或者您可以创建自己的线程并使其休眠并定期再次调用。

于 2013-05-02T12:28:14.963 回答
0

将 spring 与石英集成,让您轻松满足所有计划任务要求。这是一个可以帮助您的教程:

http://www.mkyong.com/spring/spring-quartz-scheduler-example/

于 2013-05-02T12:54:49.437 回答
0

就我而言,我想每个月运行一次代码

假设我想执行课堂remove上的功能EmptyScopesRemoverImpl

所以在spring xml中添加这个

<task:scheduled-tasks>
    <task:scheduled ref="EmptyScopesRemover" method="remove" cron="0 0 0 1 * *"/>
</task:scheduled-tasks>

有关cron值及其所需内容的更多信息,请查看https://stackoverflow.com/a/32521238/4251431

目前,该值意味着在the midnight on the first day of every month.

请注意,这EmptyScopesRemover只是一个 bean 指的是该类

于 2017-10-16T11:53:18.213 回答