2017-01-16 3 views
0

私は、APIを呼び出してデータを渡すことができるJavaを使用してクォーツスケジューラを作成しようとしています。クォーツ機能

私は全く新しいQuartzですが、今は仕事のコンセプトとそれを作成する方法を理解しています。トリガーの概念と1つのトリガー方法を理解しています と私はスケジューラーの仕組みを理解しています。

難しいのは、APIに渡す必要がある情報をどのように渡すことができるかです。 APIが呼び出され、データがDBに入力されていますが、その情報はクラスにハードコードされてJobDetailsに渡されます。

e。ユーザーは12時間以内にユーザーに送信する必要があるメッセージをシステムに渡すので、私は12時間に実行時間を設定するためにジョブとトリガーを作成することを計画していました。メッセージをスケジューラに渡すにはどうすればいいですか?このメッセージはどこに保存されるべきですか?私は何をしようとしていますか? Quartzができることを誤解したことはありますか?

ありがとうございます。どんな支援も大歓迎です。

答えて

0

JobDataMapをご覧ください。ユーザーアクションごとに新しいジョブを作成する場合は、そこに実行中に使用可能なメッセージを保存することができます。

JobDataMap Jobインスタンスの状態情報を保持します。

JobDataMapインスタンスは、ジョブがスケジューラに追加されたときに一度格納されます。 @PersistJobDataAfterExecutionで注釈が付けられたジョブの実行ごとに再永続化されます。

Triggerを使用してJobDataMapインスタンスを保存することもできます。これは、複数のトリガーによって定期的にまたは反復的に使用するためにスケジューラーに保管されているジョブを持っている場合に役立ちますが、それぞれの独立したトリガーによって、異なるデータ入力をジョブに供給したい場合に役立ちます。

実行時にJobに渡されるJobExecutionContextには、トリガーのJobDataMap(存在する場合)の内容がJobのJobDataMap(存在する場合)をマージした結果の便利なJobDataMapも含まれます。

あなたが1つのジョブを持っていても、新しいトリガーを作成しているそれぞれのユーザーアクションについては、hereの解決方法に従うことができます。

3つ目のオプションは、ユーザーの操作ごとにメッセージを保存し、電子メールをデータベースに送信する時間です。定期的に実行され、電子メールを送信しなければならない適格なレコードのデータベースをスキャンするジョブを持ってください。

+0

ありがとうございます。これは私がこの問題を解決するために必要だったものです。 – user1274028

関連する問題