31. Main.java
public class Main {
public static void main(String[] args) {
Scheduler scheduler = new Scheduler();
scheduler.scheduleFile("* * * * *", new File("cron4jtab.txt");
scheduler.start();
:
こんな感じ
34. MyTaskExecutionListener.java
public class MyTaskExecutorListener implements TaskExecutorListener {
public void executionPausing(TaskExecutor executor) {
System.out.println("Task pausing!");
}
public void executionResuming(TaskExecutor executor) {
System.out.println("Task resuming!");
}
public void executionStopping(TaskExecutor executor) {
System.out.println("Task stopping!");
}
public void executionTerminated(TaskExecutor executor, Throwable exception) {
System.out.println("Task terminated!");
}
public void statusMessageChanged(TaskExecutor executor, String statusMessage) {
System.out.println("Task statusMessage = ["+statusMessage+"]");
}
public void completenessValueChanged(TaskExecutor executor, double completenessValue) {
System.out.println("Task completeness["+completenessValue * 100+"]%");
}
}
35. MySchedulerListener.java
import it.sauronsoftware.cron4j.SchedulerListener;
import it.sauronsoftware.cron4j.TaskExecutor;
public class MySchedulerListener implements SchedulerListener {
public void taskLaunching(TaskExecutor executor) {
System.out.println("Task launched!");
executor.addTaskExecutorListener(new MyTaskExecutorListener());
}
public void taskSucceeded(TaskExecutor executor) {
System.out.println("Task completed!");
}
public void taskFailed(TaskExecutor executor, Throwable exception) {
System.out.println("Task failed due to an exception!");
exception.printStackTrace();
}
}
36. Main.java
import it.sauronsoftware.cron4j.Scheduler;
public class Main {
public static void main(String[] args) {
MySchedulerListener listener = new MySchedulerListener();
MyTask task = new MyTask();
Scheduler scheduler = new Scheduler();
scheduler.addSchedulerListener(listener);
:
}
}
37. MyTask.java
import it.sauronsoftware.cron4j.Task;
import it.sauronsoftware.cron4j.TaskExecutionContext;
public class MyTask extends Task {
public boolean canBePaused() { return true; }
public boolean canBeStopped() { return true; }
public boolean supportsCompletenessTracking() { return true; }
public boolean supportsStatusTracking() { return true; }
public void execute(TaskExecutionContext context) throws RuntimeException {
for (int i = 1; i <= 30; i++) {
System.out.println("Task says: " + i);
context.setStatusMessage("i = " + i); Taskの状況メッセージを設定
context.setCompleteness(i / 30D);
try {
Taskの進捗を設定
Thread.sleep(1000);
} catch (InterruptedException e) { ; }
context.pauseIfRequested();
if (context.isStopped()) { ポーズ要求がある場合はwait
break;
}
} 停止要求がある場合は終了
}
}