我有以下石英作业,通过Quartz-plugin设置:
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
,我不知道该怎么做。
任何帮助非常感谢。
答案 0 :(得分:3)
让您的工作实施StatefulJob,然后您就可以访问具有JobExecutionContext实例访问者的Trigger。如果你有自己的Trigger类,那将是它的一个实例。
答案 1 :(得分: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) {...}
}
}