动态调度作业:在 groovy 中使用 cron 触发器
Dynamically scheduling jobs: using cron trigger in groovy
我还在玩石英 scheduler.I 创建了下面的工作使用
grails create-job ,我想在这里做的很简单,那就是创建一个
触发并尝试 运行 执行 method.once 我想要的基本代码 运行
在 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 "
}
}
}
首先,提供的代码无法编译。尝试将 class 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!");
}
}
希望对你有所帮助。
我还在玩石英 scheduler.I 创建了下面的工作使用
grails create-job ,我想在这里做的很简单,那就是创建一个
触发并尝试 运行 执行 method.once 我想要的基本代码 运行
在 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 "
}
}
}
首先,提供的代码无法编译。尝试将 class 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!");
}
}
希望对你有所帮助。