web-dev-qa-db-ja.com

Java cronジョブを作成する方法

YouTubeからデータを読み取るためのスタンドアロンバッチJavaアプリケーションを作成しています。 1時間ごとに特定のジョブを実行するcronジョブをセットアップしたい。

Javaアプリケーションではなく、基本的な操作のためにcronジョブを実行する方法を検索しました。

31
user3138111

CronjobsにはTimerTaskを使用できます。

Main.Java

public class Main{
   public static void main(String[] args){

     Timer t = new Timer();
     MyTask mTask = new MyTask();
     // This task is scheduled to run every 10 seconds

     t.scheduleAtFixedRate(mTask, 0, 10000);
   }

}

MyTask.Java

class MyTask extends TimerTask{

   public MyTask(){
     //Some stuffs
   }

   @Override
   public void run() {
     System.out.println("Hi see you after 10 seconds");
   }

}

AlternativeScheduledExecutorService も使用できます。

39
Indrajith

まず、新しいことを始める前に、常に docs を参照することをお勧めします。

与えられたCron Expressionに基づいてJobをスケジュールするSchedulerFactoryがあります。

    //Create instance of factory
    SchedulerFactory schedulerFactory=new StdSchedulerFactory();

    //Get schedular
    Scheduler scheduler= schedulerFactory.getScheduler();

    //Create JobDetail object specifying which Job you want to execute
    JobDetail jobDetail=new JobDetail("myJobClass","myJob1",MyJob.class);

    //Associate Trigger to the Job
    CronTrigger trigger=new CronTrigger("cronTrigger","myJob1","0 0/1 * * * ?");

    //Pass JobDetail and trigger dependencies to schedular
    scheduler.scheduleJob(jobDetail,trigger);

    //Start schedular
    scheduler.start();

MyJob.class

public class MyJob implements Job{

      @Override
      public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
                 System.out.println("My Logic");
        }

    }
6
Shoaib Chikate

UNIXを使用している場合は、最初にJavaバッチを実行するシェルスクリプトを作成する必要があります。

その後、UNIXでこのコマンド「crontab -e」を実行して、crontabスクリプトを編集します。 crontabを設定するには、この記事を参照してください http://www.thegeekstuff.com/2009/06/15-practical-crontab-examples/

Crontab設定を保存します。その後、来る時間を待つと、プログラムが自動的に実行されます。

3
Chi Nguyen