3

私はクォーツ・プラグインを介して設定され、以下の石英仕事をしている:Grailsの - クォーツジョブ内のパラメータトリガ

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

    def execute(){ ... } 
} 

私はで利用できるようになるトリガーにパラメータを設定できるようにしたいと思いますexecuteブロック。 cron triggerには変数を設定できないようですが、custom triggerにはQuartz Trigger interfaceを実装する必要がありますが、これはわかりません。

大変助かりました。

答えて

3

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

1

ありがとう、それはトリックでした。これが私の使い方です:

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) {...} 
    } 
} 
関連する問題