Spring MVC 3 定时任务在特定时间开始

标签 spring spring-mvc

我想在 Spring MVC 中安排一个方法调用,使其每两小时运行一次。我可以通过 Spring 3.0 Time Scheduler 轻松做到这一点。但是,我只想在一天中的特定时间开始执行。也就是说,该方法只能在特定时间开始每 2 小时调用一次。

例如 - 我希望该方法从早上 6 点开始每 2 小时运行一次。 TimeScheduler 接口(interface)有一个 scheduleAtFixedRate 方法,它被重载以使用 startTime Date 参数。我不太确定如何使用它。

知道如何实现吗?

最佳答案

您可以看一下TaskScheduler 界面。它提供了一个返回 ScheduledFuture 的方法 scheduleAtFixedRate(Runnable task, Date startTime, long period)。您可以通过一些简单的 Spring 配置来使用它:

<task:scheduler id="scheduler" pool-size="10"/>

这将创建一个 ThreadPoolTask​​Scheduler 实例,它实现了 TaskScheduler。将这个坏男孩连接到类中以调用您的特定方法:

public class MyClass {
    @Autowired
    private TaskScheduler scheduler;

    public void init() {
        scheduler.scheduleAtFixedRate(new Runnable() {
            public void run() {
                myMethod();
            }
        }, new Date(), 1000 * 60 * 60 * 2); //This will start now and run every two hours
    }

    public void myMethod() {
        // the method you want to invoke
    }
}

关于Spring MVC 3 定时任务在特定时间开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8584876/

相关文章:

java - 运行javac编译导入一些库的Java类时如何加载jar文件?

java - Spring 启动 2 : Get html output in controller

java - spring integration中如何并行同步处理?

android - 无法从 START_OBJECT token 中读取 JSON : Can not deserialize instance of java. lang.String(非常简单的对象)

java - 所需的请求部分 'file' 不存在。尝试上传图像, Angular -> Spring

spring - 如何使用 RestTemplate 进行基本身份验证

json - Spring和Jackson Json,用 View 序列化不同的字段

java - Spring Security + Google App Engine + UserService : What is the correct way to logout?

java - : SpringIocContainer | ApplicationContext | WebApplicationContext之间的关联

java - 使用 Spring Security 的 session 属性