Grails 动态调度作业:在groovy中使用cron触发器
我仍然在玩quartz调度程序。我使用 GrailsCreateJob,我在这里尝试做的很简单,就是创建一个 触发并尝试运行execute方法 在for内创建多个触发器,每个触发器具有不同的cron计划值 循环(具有不同执行时间的多个触发器)并运行execute 方法并在这些触发器的列表上执行Grails 动态调度作业:在groovy中使用cron触发器,grails,groovy,quartz-scheduler,Grails,Groovy,Quartz Scheduler,我仍然在玩quartz调度程序。我使用 GrailsCreateJob,我在这里尝试做的很简单,就是创建一个 触发并尝试运行execute方法 在for内创建多个触发器,每个触发器具有不同的cron计划值 循环(具有不同执行时间的多个触发器)并运行execute 方法并在这些触发器的列表上执行sched.scheduleJob(triggerName) import org.quartz.* import org.quartz.Trigger import static org.quartz.J
sched.scheduleJob(triggerName)
import org.quartz.*
import org.quartz.Trigger
import static org.quartz.JobBuilder.*;
import static org.quartz.CronScheduleBuilder.*;
import static org.quartz.TriggerBuilder.*;
public class TrialJob
{
public static void main(String[] args)
{
JobDetail job = JobBuilder.newJob(TestJob.class).withIdentity("dummyJobName1","group11").build();
CronTrigger trigger = newTrigger().withIdentity("trigger","group1").withSchedule(cronSchedule("0 55 15 * * ?")).build();
Scheduler scheduler = new StdSchedulerFactory().getScheduler();
scheduler.scheduleJob(job,trigger);
scheduler.start();
//while(true){};
}
public static class TestJob implements Job
{
public void execute(JobExecutionContext context) throws JobExecutionException
{
println "inside execute "
}
}
}
首先,提供的代码无法编译。试图将类
org.quartz.impl.StdSchedulerFactory
的实例分配给声明为org.quartz.Scheduler
的变量
其次,程序运行良好,作业已调度,但在捕获任何输出之前,该作业已存在。要证明它,请在下面的示例中使用未注释的//while(true){}代码>行。这一例子取自
希望这对您有所帮助。请提供一个可运行的示例,以允许其他用户尝试。嗨,opal,我已经更新了代码,但执行方法仍然不起作用。我对qaurtz scheduler非常陌生,所以不太确定cron触发器是否正确?quartz的版本是什么?quartz scheduler的版本是quartz 2.2.1…我认为触发器不正确工作和执行方法不工作Hi opal非常感谢您的代码..但即使在上面的代码中,执行方法也没有被调用,因为我看不到任何打印内容..是否需要此注释@Grab(group='org.quartz scheduler',module='quartz',version='2.2.1')..我试着在有和没有这个的情况下运行代码..我不知道哪里出了问题..现在可以在groovy控制台中运行代码了。要查看输出取消注释行://while(true){}代码>。您还可以复制代码,将其保存到which.groovy,并使用groovy which.groovy运行。嘿,兄弟,它现在可以工作了:)非常感谢。。。我是否可以在for循环中为cronSchedule每次创建一个新的withSchedule(CronScheduleBuilder.cronSchedule(“0/5****?”)值时都创建多个触发器?如果有效,请接受并向上投票。这是另一个问题。张贴它。
@Grab(group='org.quartz-scheduler', module='quartz', version='2.2.1')
import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;
public class CronTriggerExample {
public static void main( String[] args ) throws Exception {
JobDetail job = JobBuilder.newJob(HelloJob.class)
.withIdentity("dummyJobName1", "group11").build();
Trigger trigger = TriggerBuilder
.newTrigger()
.withIdentity("dummyTriggerName1", "group11")
.withSchedule(CronScheduleBuilder.cronSchedule("0/5 * * * * ?"))
.build();
Scheduler scheduler = new StdSchedulerFactory().getScheduler();
scheduler.start();
scheduler.scheduleJob(job, trigger);
//while(true){};
}
}
public class HelloJob implements Job {
public void execute(JobExecutionContext context) throws JobExecutionException {
System.out.println("Hello Quartz!");
}
}