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,我不知道该怎么做。

非常感谢任何帮助。

让你的作业实现statfuljob,然后你就可以访问jobeexecutioncontext,它有一个Trigger实例访问器。如果你有你自己的触发器类,那将是它的一个实例。

非常感谢,它成功了。这就是我最终使用它的方式:

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) {...}
  }
}

相关内容

  • 没有找到相关文章

最新更新