gpt4 book ai didi

grails - 动态调度作业:在Groovy中使用cron触发器

转载 作者:行者123 更新时间:2023-12-02 15:06:28 27 4
gpt4 key购买 nike

我仍然在使用 quartz 调度程序。
grails create-job,我在这里要做的事情很简单,那就是创建一个
触发并尝试运行execute方法。一旦运行此基本代码,我想
在for中创建多个触发器,每个触发器具有不同的cron计划值
循环(具有不同执行时间的多个触发器)并运行执行
方法,并在这些触发器的列表上执行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){};行。该示例取自here

@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!");
}
}

希望对您有所帮助。

关于grails - 动态调度作业:在Groovy中使用cron触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27870823/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com