私は、org.springframework.scheduling.quartz.SimpleTriggerBean
を使用するSpringアプリケーションを使用して、メソッドの実行を定期的にスケジュールします。Spring、バックグラウンド実行またはオンデマンド
場合によっては、同じ方法を「オンデマンド」と呼びたいことがあります。これは、GUI上のアクションによって引き起こされます。私が実行したいメソッドは数秒かかるので、実行が終了するまでユーザーGUIをブロックしたくありません。さらに、「オンデマンド」実行をバックグラウンドスレッド(相互に排他的)で調整したい。
- は豆が が タスクをスケジュールするのTaskExecutorを使用することManagerと呼ばれる作成します。
は、ここに1つのアプローチです。マネージャーはどちら 背景方法 Manager.scheduleTask()
- を持っており、「オンデマンド」 スレッドがマネージャー(Manager.scheduleTask)
- に同じメソッドを呼び出しますタスクが同期で実行さ メソッドを実行して、 のタスクが1つしか実行されていないことを確認します。
私はもっと巧妙な/よりクリーンなソリューションを探しています。
あなたはクォーツに取り付けられていますか、それとももっと簡単なものを考えていますか? – skaffman
私は石英についていません。 Springとの統合が容易なので、私はそれを使用しています。石英を使わずにアイデアはありますか? –