Java での Cron ジョブ
このチュートリアルでは、Java を使用して Cron ジョブを作成する方法について説明します。 しかし、その前に、Cron または Cron ジョブを見てみましょう。
Cronジョブとは
Cron は、作業のスケジューリングによく使用されるアプリケーションです。 Unix に似たオペレーティング システムでアクセスでき、そこからダウンロードできます。
特定のプログラムまたはスクリプトを実行する必要がある場合があります。 これらのプログラムまたはスクリプトは Cron ジョブとして追加され、このジョブをいつ実行するかを説明するスケジュールが設定されます。
- たとえば、Cron を使用して、データ データベース システムや情報の保存、自動変更による構造の再構築、ディスク容量の使用状況の評価、メッセージの配信などのプログラムを実行できます。Cron は電子メールの送信にも使用できます。
- つまり、Cron 式の目的は、スケジュールされたジョブを実行する必要がある日時を記述することです。
Java で cron ジョブを作成する
Java で Cron ジョブを作成するには、いくつかの方法があります。 ここでは、Java の Timer Task
について説明します。
Timer Task
クラスを使用する
ジョブを Timer
に割り当てて、1 回または特定の間隔で繰り返し実行することができます。 次のライブラリをプロジェクトにインポートすると、TimerTask
を使用できるようになります。
import java.util.TimerTask;
TimerTask
関数がどのように機能するかをよりよく理解するために、次の例を見てみましょう。
-
まず、
TimerTask
クラスを拡張するMyTask
という名前のクラスを作成します。 これは、タスク ロジックが記述されるポイントになります。class MyTask extends TimerTask { public MyTask() {} @Override public void run() { System.out.println("Hello, folks"); } }
-
次に、
TimerTask
を使用するためにMain()
クラスを作成します。public class Main {}
-
Timer()
クラス オブジェクトのインスタンスを作成します。これを以下でtimer
と名付けます。Timer timer = new Timer();
-
その後、
MyTask
クラスのインスタンスを作成し、shaniitask
という名前を付けます。MyTask shaniitask = new MyTask();
-
最後に、
scheduleAtFixedRate
関数を使用してジョブをスケジュールし、タスクの名前shaniitask
と毎回実行する必要があるアクティビティの秒数を指定します。 次のアクティビティは、スケジュールで40
秒ごとに繰り返すように設定されています。timer.scheduleAtFixedRate(shaniitask, 0, 40000);
完全なソース コード:
MyTask.java
:
class MyTask extends TimerTask {
public MyTask() {}
@Override
public void run() {
System.out.println("Hello, folks");
}
}
Main.java
:
public class Main {
public static void main(String[] args) {
Timer timer = new Timer();
MyTask shaniitask = new MyTask();
timer.scheduleAtFixedRate(shaniitask, 0, 40000);
}
}
出力:
Hello, folks
Hello, folks
Hello, folks
...
I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.
LinkedIn