我正在安排后台任务以固定间隔运行,但是由于tomcat在多个实例(例如,多个启动Apache服务器;在我的情况下为3个)中运行,因此该任务在每个间隔中运行3次.运行一次(无论运行的Tomcat实例数量如何).
我正在运行一个在启动时加载的servlet(在web.xml中),它将启动我的任务:
OnInit
box.OnInit
1
OnInit类启动该类的单个实例:
public class BGTaskRefresh {
private static BGTaskRefresh refreshTaskFactory = null;
private final Timer timer = new Timer();
public BGTaskRefresh() {}
public static void init()
{
if( refreshTaskFactory == null )
{
refreshTaskFactory = new BGTaskRefresh();
refreshTaskFactory.start();
}
}
public void start()
{
timer.schedule(
new TimerTask()
{
public void run()
{
boxService box = new boxService();
box.refreshMethod();
}
},
5 * 60 * 1000, // 5-Min Delay for first run
60 * 60 * 1000); // 60-Mins (Interval between 2 runs)
}
}