我有以下石英作业,通过石英插件设置:
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) {...}
}
}