3
에서 매개 변수 나는 다음과 같은 수정 작업, 석영 - 플러그인을 통해 설정 한

: 나는에서 사용할 수있는 것 트리거에 매개 변수를 설정할 수 있도록하고 싶습니다 Grails를 - 석영 작업 트리거

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을 구현해야합니다.이 방법은 수행 방법을 모릅니다.

도움을 주시면 감사하겠습니다.

답변

3

StatefulJob을 구현하면 JobExecutionContext에 액세스 할 수 있으며 Trigger 인스턴스 접근자가 있습니다. 자신 만의 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) {...} 
    } 
}