1. Task
Job: 開発者は、実行中のタスクを定義するためにこのインターフェイスを実装します。このインターフェイスは、スケジュール コンテキストに関するさまざまな情報を提供します。ジョブの実行時情報は JobDataMap インスタンスに保存されます。 2. トリガー
Trigger: ジョブの実行をトリガーする時間トリガー ルールを記述するクラスです。 SimpleTrigger と CronTrigger という 2 つの主要なサブクラスがあります。 1 回だけトリガーするか、一定の時間間隔で実行する必要がある場合は、SimpleTrigger が最適な選択肢ですが、CronTrigger は、Cron 式を使用してさまざまな複雑な時間ルールのスケジュール プランを定義できます。たとえば、毎朝 9:00、月曜日、水曜日、金曜日の午後 5 時に実行など。ジョブ newInstance() のリフレクション メカニズムを通じて実行時にジョブをインスタンス化できるようにクラスを実装します。したがって、ジョブ実装クラスと、ジョブ名、説明、関連するリスナー、その他の情報などの関連する静的情報を記述するクラスが必要です。JobDetail がこの役割を果たします。
Quartzジョブの作成
1. スケジュールエンティティクラス
/** * *计划实体类 */ public class Plan { private String date; private String task; public Plan(String date, String task) { this.date = date; this.task = task; } public Plan() { } @Override public String toString() { return "Plan [date=" + date + ", task=" + task + "]"; } public String getDate() { return date; } public void setDate(String date) { this.date = date; } public String getTask() { return task; } public void setTask(String task) { this.task = task; } }
2. リマインダータスククラス
/** * * @提醒服务类 * */ public class RemindService { //数据查询 public List<Plan> getPlansForToday(){ List<Plan> list=new ArrayList<Plan>(); Plan p1=new Plan("2016-11-3","呵呵"); Plan p2=new Plan("2016-11-4","嘿嘿"); list.add(p1); list.add(p2); return list; } //提醒服务类 public void ouputPlan(){ List<Plan> forToday = getPlansForToday(); for (Plan plan : forToday) { System.out.println("计划时间"+plan.getDate()+"计划内容"+plan.getTask()); } } }
4. スケジュールタイマータスク
/** * * @提醒任务类 * */ public class RemindJob implements Job { private RemindService service=new RemindService(); public void execute(JobExecutionContext arg0) throws JobExecutionException { service.getPlansForToday(); } public RemindService getService() { return service; } public void setService(RemindService service) { this.service = service; } }