java - 使用 Spring 包装类相对于 Quartz 调度程序库的优势

标签 java spring spring-boot quartz-scheduler

我正在使用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/

相关文章:

java - 如何从 URL 读取 JSON 文件?

java - 如何在spring-jpa中保存基于实体的父表到子表的数据

java - Spring boot data.sql没有初始化Postgresql中的数据

java - 如何为 CMS 扩展/添加 BouncycaSTLe 摘要算法?

java - 具有基本授权的 HTTP 帖子在 Java 中不起作用

java - 在 MacOS 上安装 R 并从源代码编译包 - 使事情正常运行的组件和步骤

spring - 在运行时生成的类中使用 Kotlin 对象

Spring JTA 事务与 Websphere 的 JPA 和 jndi 数据源

android - 没有 Maven 的 Android 上的 Spring

java - 在 Spring Boot 中存储 MongoDB 用户的可配置加密密码