Grails 动态调度作业:在groovy中使用cron触发器

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

我仍然在玩quartz调度程序。我使用 GrailsCreateJob,我在这里尝试做的很简单,就是创建一个 触发并尝试运行execute方法 在for内创建多个触发器,每个触发器具有不同的cron计划值 循环(具有不同执行时间的多个触发器)并运行execute 方法并在这些触发器的列表上执行
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!");    
    }
}