Grails2.1アプリケーションにQuartzプラグインをインストールしました。5分ごとに、いくつかの数値を計算する1つのジョブがトリガーされます。番号はすべてのページのサイドバーに表示されています。計算結果は頻繁に変更されます。私の目標は、ユーザーが画面を更新したときに、サイドバーに新しい結果が表示されるようにすることです。今のところ私のアプローチは、ajax呼び出しをコントローラーに送信し、データベースから結果を取得して画面にレンダリングすることです。
ユーザーがリンクをクリックしたり画面を更新したりするたびにクエリを実行せずにビューがそれらを使用できるように、データベース以外の場所にJOBからの計算結果を保存(キャッシュ)する方法はありますか?
私はセッションについて考えましたが、通常のWebリクエスト以外でそれが可能であるか、それとも良い解決策であるかはまったくわかりませんでした。解決策や代替アプローチはありますか?ありがとう
class MonitoringJob {
def calculatorService
def name = 'Monitoring'
def group = 'ApplicationGroup'
static triggers = {
simple name: 'mySimpleTrigger', startDelay: 60000, repeatInterval: 30000
}
def execute() {
def results = calculatorService.runCalculators()
//something like this: session.results =result
}
}