Java

【Java】定期的にタスクを実行する方法

はじめに

今回はJavaで定期的にタスクを実行する方法を解説します。
本機能はバッチ処理でよく使用されます。

サンプルではTimerクラスを利用し、定期的にタスクを実行する処理を実装していきます。

それでは早速解説していきます。

開発環境

以降、以下のバージョン、環境での解説となります。

IDE:eclipse
Javaバージョン:8

フォルダ構成

今回のサンプルプログラムのフォルダ構成は以下の通りです。

スクリーンショット 2018-11-14 21.02.27.png

サンプルプログラムの実装

1. 定期的に実行したいタスクの実装

定期的に実行したいタスクはTimerTaskクラスを使用して実装します。
今回、「タスクが実行されました。」と定期的にコンソールに出力する処理をサンプルで実装していきます。

また、何回実行したか確認するために、以下のように回数がわかるように実装してみましょう。

2. スケジュールの実装

次に、いつタスクを実行開始し、どのぐらいの間隔でタスクを実行するのか実装していきます。

実装方法ですが、TimerクラスのscheduleAtFixedRateメソッドを使用します。
使い方は以下の通りです。

scheduleAtFixedRateメソッドの第二引数ですが、「初回のタスク実行までの時間」だけでなく、「タスク開始時間」をDate型で指定することもできます。

今回のサンプルでは、PGM実行後、1秒後に3秒間隔でタスクが実行されるような処理を実装していきます。

上記実装完了しましたら、Main.javaを右クリック>Javaアプリケーションの実行で実行してみましょう。

以下のような文言が3秒間隔でコンソールに出力されればOKです。

さいごに

今回Timerクラスを使用した定期的にタスクを実行する方法を紹介させていただきました。

バッチ処理などで定期的に実行したいタスクを作成するとき、シンプルにコーディングできますので非常に便利です。

ぜひ参考にしていただけると嬉しいです。