Grails 用の Quartz プラグインを使用しており、単純な仕事をしています。
class MyJob{
static triggers = {
cron name: 'MyJobTrigger', cronExpression: '0 0/1 * * * ?'
}
def execute(){
println "do some work"
}
}
すべてが正常に機能し、期待どおりに毎分ジョブが起動します。
ここで、さまざまな環境でオーバーライドできるように、cron 式をプロパティ駆動型にしたいと考えています。したがって、Config.groovy にはデフォルト値が含まれています。
myJob.cron = '0 0/1 * * * * ?'
そして、クラスを次のように変更します。
GrailsApplication grailsApplication
static triggers = {
cron name: 'MyJobTrigger', cronExpression: grailsApplication.config.myJob.cron
}
コードを実行すると、次のエラーが発生します。
Caused by MissingPropertyException: No such property: grailsApplication for class: MyJob
これが MyJob クラスのロード/初期化の方法に関係していると仮定すると、GrailsApplication が注入される前に作成された静的トリガー??? この GrailsApplication の使用は、プロジェクト プロパティを取得する通常の方法です。
プロパティ駆動型の cron トリガーを他にどのように設定できますか?