1

エンティティに基づいて cron タスクを実行したいので、そのエンティティを TaskEntity と呼びましょう

TaskEntity は、何を行う必要があるか (ドメイン固有)、いつ行う必要があるかについての情報を持つことができます。when 部分は cron ベースの方法で指定できます

最初はQuartzを調べようと思ったのですが、明確な例が見つかりませんでした

ここから先に進む方法がわかりません。エンド ユーザーが実行時に必要な数のタスクを追加できるようにしたいだけです。エンド ユーザーがタスクを変更した場合 (つまり、無効にする、削除する、または時間を変更する)、それに応じて動作する必要があります。

4

1 に答える 1

0

最も簡単な解決策は、スケジューラを使用することだと思います。

起動時に、すべてのエンティティを読み取り、タスクの次の開始時間を計算します。

その時間になると、タスクを起動し、次の開始時間を計算してスリープします。エンティティの更新をリッスンして、次回の開始時刻を再計算し、必要に応じてスケジューラをリセットする必要があります。

そのために org.quartz.Scheduler を使用できます。詳細については、ドキュメントを確認してください: http://www.quartz-scheduler.org/docs/index.html

このようになります。(ジョブは org.quartz.Job インターフェースを実装する必要があります)

Trigger trigger = new SimpleTrigger( "jobname", "scheduler group name", dateTime );
scheduler.scheduleJob( jobDetail, trigger );
于 2011-02-03T15:11:03.037 に答える