javaのtimerクラスに処理の定期実行を実施するクラスがある。
スケジュールメソッドで実行するのだが、
引数に
1・実行する処理
2・開始時間(ミリ秒)
3・実施間隔(ミリ秒)
で指定することで簡易的にではあるがJP1のような
定期実行処理をJavaで実施することができる。
例えばAの処理を10秒後に、60秒間隔で実行する
ような処理の場合
time.scheduleAtFixedRate(A(), 10000, 60000);
といった実装になる。
問題点としては複雑な実行処理が難しい点で
複数タスクをこのメソッドで実行するのはやや難がある
例えばサイトアクセスのカウントなどであれば単一のタスクを永遠と繰り返すだけのため
このようなTimerメソッドでも問題はないのだが、
A→B→Cのような連続したタスクの実行の場合
処理速度の如何によっては並行して処理が実施されるため挙動に影響が出る
複数の処理実施の場合はバッチで順々に呼び出す方が無難かと思われた
TimerクラスはThreadよりは使いやすそうに見えるが
周期的に実行するクラスとメインのクラスを同時に実施する場合は処理結果の同期化を
一定のタイミングで実施しないことには問題が出そうである