3

Quartz-plugin を介して設定された次の Quartz ジョブがあります。

class UserMonthlyNotificationJob { 
static triggers = {
        cron name:'dailyTrigger', cronExpression: " ... "
        cron name:'weeklyTrigger', cronExpression: " ... "
        cron name:'monthlyTrigger', cronExpression: " ... "
}

    def execute(){ ... }
}

ブロックで使用できるトリガーにパラメーターを設定できるようにしたいと考えていexecuteます。に変数を設定できないようで、を実装cron triggerする必要がありますが、その方法がわかりません。custom triggerQuartz Trigger interface

どんな助けでも大歓迎です。

4

2 に答える 2

3

ジョブにStatefulJobを実装すると、 Triggerインスタンス アクセサーを持つJobExecutionContextにアクセスできるようになります。独自の Trigger クラスがある場合、それはそのインスタンスになります。

于 2011-09-16T09:58:26.637 に答える
2

どうもありがとうございました、それはトリックをしました。これが私がそれを使うことになった方法です:

import org.quartz.StatefulJob
import org.quartz.JobExecutionContext

class UserPeriodicalNotificationJob implements StatefulJob{   

    static triggers = {
        cron name:'dailyTrigger', cronExpression: ConfigHolder.config.userDailyNotificationJob
        cron name:'weeklyTrigger', cronExpression: ConfigHolder.config.userWeeklyNotificationJob
        cron name:'monthlyTrigger', cronExpression: ConfigHolder.config.userMonthlyNotificationJob   
    }

    void execute(JobExecutionContext context){
        def triggerName = context.trigger.key
        try {
            switch (triggerName) {...}
        }
        catch(Exception) {...}
  }
}
于 2011-09-16T14:33:47.040 に答える