我正在使用quartz调度程序来动态调度作业。我找到了另一种使用spring bean类来使用quartz调度程序的方法。 例如。
这是使用quartz调度器的正常方式。
SchedulerFactory sf = new StdSchedulerFactory();
Scheduler sched = sf.getScheduler();
JobDetail job = newJob(SimpleJob.class).withIdentity("job2", "group1").build();
CronTrigger trigger = newTrigger().withIdentity("trigger2", "group1").withSchedule(cronSchedule("0/2 * * * * ?")).build();
sched.scheduleJob(job, trigger);
sched.start();
这就是我们使用 spring 类的方式:-
JobDetailFactoryBean job = new JobDetailFactoryBean();
job.setName(list.get(a).getJobName());
job.setDurability(true);
job.setGroup("group");
CronTriggerFactoryBean ret = new CronTriggerFactoryBean();
trigger.setCronExpression(list.get(a).getCronExpression());
trigger.setGroup("group");
trigger.setName(list.get(a).getCronExpressionName());
trigger.setJobDetail(job.getObject());
SchedulerFactoryBean sched = new SchedulerFactoryBean();
sched.setOverwriteExistingJobs(true);
sched.setTriggers(trigger);
所以我想知道使用 Spring 包装类相对于quartz 库有什么优势。
最佳答案
在浏览了几个教程和博客并与很多人讨论后,我找到了答案。如果想要将 jobDetail 和触发器包含在 Spring Bean 容器中,我们可以使用 Bean 包装类而不是 Quartz。 通过这样做,我们可以 Autowiring JobDetail 和 CronTrigger 类等。我们可以利用 spring-beans 来创建我们的作业、触发器和调度器工厂类等。
关于java - 使用 Spring 包装类相对于 Quartz 调度程序库的优势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42507571/