Java7Web服务调度器实现建议
我知道有许多用于调度器的框架以及JDK自己的调度器。我不能使用任何第三方框架/API。现有的调度程序仅使用JavaAPI。详情如下:-Java7Web服务调度器实现建议,java,timer,task,java-7,scheduler,Java,Timer,Task,Java 7,Scheduler,我知道有许多用于调度器的框架以及JDK自己的调度器。我不能使用任何第三方框架/API。现有的调度程序仅使用JavaAPI。详情如下:- public class Timer implements Runnable { private Thread runner; private int pause; private Task task; private boolean running; public Timer(int pause, Task
public class Timer implements Runnable {
private Thread runner;
private int pause;
private Task task;
private boolean running;
public Timer(int pause, Task task) {
this.pause = pause;
this.task = task;
runner = new Thread(this, "Timer");
}
public void run() {
try {
while (running) {
task.run(); // long running task
synchronized (runner) {
runner.wait(pause);
}
}
} catch (InterruptedException ie) {
/* The user probably stopped the */
}
}
接口和类:-
public interface Task {
void run();
}
public class TaskManager implements Task {
private static boolean firstRun = true;
private static Timer timer;
private static String lastRun;
public static void start(int interval) {
// stop any previous
if (timer != null) {
timer.stopTimer();
timer = null;
}
// Start a new one
TaskManager taskManager = new TaskManager ();
timer = new Timer(interval * 1000, taskManager );
timer.startTimer();
}
public void run() {
// long running code
}
public void setDelay(int p) {
pause = p;
}
public void startTimer() {
running = true;
runner.start();
}
public void stopTimer() {
running = false;
runner.interrupt();
}
}
从Servlet我称之为:
private void startTaskManager() {
TaskManager.start(30);
}
我的要求是它将在run()方法的线程中执行任务。有许多任务将从数据库中一个接一个地选取
上述实施存在一些问题。在上面的实现中,它有自己的接口任务和自己的定时器
我认为还有另一种更好的方法来实现这个调度程序。请推荐我