我想在 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"/>
这将创建一个 ThreadPoolTaskScheduler
实例,它实现了 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/