プログラムの実行をスケジュールする方法をクォーツに学習しようとしています。私は小さな問題に遭遇していますが、私の入力には反応しないようです。以下のコードを使用して、単純な例を作成して、「単純な例」を画面に表示します。しかし、時間を設定してプログラムを実行すると、何も起こりません。私は走りから2分の間それをセットし、ちょうど待つが、それはべきでない振る舞いではない。私は何かエラーや何も得ていない、それはただ何もしていない。助けていただければ幸いです。開始時間に達したときにクォーツスケジューラが応答しない
package schedulers;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.quartz.CronScheduleBuilder;
import org.quartz.CronTrigger;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SimpleScheduleBuilder;
import org.quartz.SimpleTrigger;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory;
import static org.quartz.JobBuilder.*;
import static org.quartz.JobBuilder.*;
import static org.quartz.SimpleScheduleBuilder.*;
import static org.quartz.CronScheduleBuilder.*;
import static org.quartz.CalendarIntervalScheduleBuilder.*;
import static org.quartz.TriggerBuilder.*;
import static org.quartz.DateBuilder.*;
public class SimpleExample {
public static void main(String args[]) throws Throwable{
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
JobDetail job = newJob(HelloJob.class)
.withIdentity("cronJob", "testJob")
.build();
String startDateStr = "2016-11-01 09:41:00.0";
// String endDateStr = "2013-09-31 00:00:00.0";
Date startDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S").parse(startDateStr);
//Date endDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S").parse(endDateStr);
CronTrigger cronTrigger = newTrigger()
.withIdentity("trigger1", "testJob")
.startAt(startDate)
.withSchedule(CronScheduleBuilder.cronSchedule("0 0 9-12 * * ?").withMisfireHandlingInstructionDoNothing())
.build();
scheduler.scheduleJob(job, cronTrigger);
scheduler.start();
}
}
package schedulers;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
/**
* This class defines a quartz job.
* @author
*/
public class HelloJob implements Job{
public void execute(JobExecutionContext arg0) throws JobExecutionException {
System.out.println("Simple Exapmle");
}
}
これは多くの助けとプログラムが実行されました。ありがとうございました。しかし、私はこれを任意の曜日または時間に実行するようにスケジュールできます。私があなたが提供するコードを使ってそれを達成する方法がわかりません。 – Jrawr
特定の時間にCalendarオブジェクトに渡すことはできますか? – Jrawr
@Jrawrあなたのコードは動作しますが、あなたのシステム時間があなたの開始時刻、すなわち '2016-11-01 09:41:00.0'に達すると。開始時刻に最新の+バッファをキャプチャして、すぐに結果を確認できるようにしてください。 – Akshay