Java での Cron ジョブ

Muhammad Zeeshan 2023年10月12日
  1. Cronジョブとは
  2. Java で cron ジョブを作成する
Java での Cron ジョブ

このチュートリアルでは、Java を使用して Cron ジョブを作成する方法について説明します。 しかし、その前に、Cron または Cron ジョブを見てみましょう。

Cronジョブとは

Cron は、作業のスケジューリングによく使用されるアプリケーションです。 Unix に似たオペレーティング システムでアクセスでき、そこからダウンロードできます。

特定のプログラムまたはスクリプトを実行する必要がある場合があります。 これらのプログラムまたはスクリプトは Cron ジョブとして追加され、このジョブをいつ実行するかを説明するスケジュールが設定されます。

  1. たとえば、Cron を使用して、データ データベース システムや情報の保存、自動変更による構造の再構築、ディスク容量の使用状況の評価、メッセージの配信などのプログラムを実行できます。Cron は電子メールの送信にも使用できます。
  2. つまり、Cron 式の目的は、スケジュールされたジョブを実行する必要がある日時を記述することです。

Java で cron ジョブを作成する

Java で Cron ジョブを作成するには、いくつかの方法があります。 ここでは、Java の Timer Task について説明します。

Timer Task クラスを使用する

ジョブを Timer に割り当てて、1 回または特定の間隔で繰り返し実行することができます。 次のライブラリをプロジェクトにインポートすると、TimerTask を使用できるようになります。

import java.util.TimerTask;

TimerTask 関数がどのように機能するかをよりよく理解するために、次の例を見てみましょう。

  1. まず、TimerTask クラスを拡張する MyTask という名前のクラスを作成します。 これは、タスク ロジックが記述されるポイントになります。

    class MyTask extends TimerTask {
      public MyTask() {}
      @Override
      public void run() {
        System.out.println("Hello, folks");
      }
    }
    
  1. 次に、TimerTask を使用するために Main() クラスを作成します。

    public class Main {}
    
  2. Timer() クラス オブジェクトのインスタンスを作成します。これを以下で timer と名付けます。

    Timer timer = new Timer();
    
  3. その後、MyTask クラスのインスタンスを作成し、shaniitask という名前を付けます。

    MyTask shaniitask = new MyTask();
    
  4. 最後に、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
...
Muhammad Zeeshan avatar Muhammad Zeeshan avatar

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