JOB状態と同時実行

新しいインスタンスを作成します。各ジョブが実行されるため、

         ときjobDetail例、格納するデータまたは特殊フィールドの操作、データの必要性をschedulは、各ジョブの保持時間前に実行

            状態で保たれたデータは、ステートレスの新しいインスタンスを再作成し、すべてのスケジューラを避けるために持っている前に、その後、我々は、ジョブ情報を必要とします

 

JobDetail = JobBuilder JobDetail。NewJob(QuartzJob。クラス)
.withIdentity("MYJOB"、"グループ")
JobDataMap JobDetailを構築する際に、データがJobDataMap、中に配置することができます//
.usingJobData("jobSays"、"Hello Worldの!")
.usingJobData("myFloatValue"、3.14f)
.usingJobData("COUNT"、0)
.build();





/ ** 
*:注釈はジョブ・クラスに追加され、同じクォーツ(この特定のジョブクラスに)同時に複数のインスタンスを定義した仕事を教えて実行しないでください。
*ここでその言葉遣いに注意してください。、前のセクションの例を見てみましょう
*「をSalesReportJob」カテゴリ、上の注釈場合
*同じ時間は、「SalesReportForJoe」のインスタンスを1つだけことができます
*が、1つの例として、「SalesReportForMike」カテゴリ同時に実行することができます。
*制限はJobDetailので、むしろ、ジョブ・クラスよりもあります。
*しかし、我々は、ジョブ・クラス上の注釈でなければなりません(クォーツ時間の設計に)信じている
職種の変化は、多くの場合、行動変容につながるのため、*。
* /
@DisallowConcurrentExecution //これらは、制限ジョブインスタンス(jobDetai)に同時実行である、と言ってまとめる、ナンセンスの公式文書の集まりです
/ **このコメント
ジョブジョブの複数の呼び出しは、特定の情報の保存、つまり、永続的になります*
このコメントは、すべてのインスタンスはなりません、あなたが以前に作成した情報の保存jobDataMap作成されていません
* /
@PersistJobDataAfterExecution
パブリッククラスQuartzJob 実装仕事を{
 @Override ボイドパブリック(JobExecutionContext JobExecutionContext)を実行JobExecutionException {スロー ++ COUNTを、 。システムout.printlnを(.. JobExecutionContext.getJobDetail()のgetKey()のgetName()+ "である最初の" + COUNT + "呼び出し"); JobExecutionContext。 ... getJobDetail()getJobDataMap()PUT("COUNT"、COUNT); //するSystem.out.println( "ここに来以下jobDwtailのjobDetailMapの指定された数回融合地図の数である"); // JobExecutionContext。 。getMergedJobDataMap()PUT( "COUNT"、COUNT); // System.out.printlnは(。jobExecutionContext.getMergedJobDataMap()getIntValue( "COUNT"));} }











最初の呼び出しによってMYJOB
MYJOBが2呼ばれる
MYJOBは、第三の呼である

レコード状態jobDetail

おすすめ

転載: www.cnblogs.com/wangbiaohistory/p/12040157.html
おすすめ