java - quartz 调度器/多个(非集群)调度器实例

标签 java quartz-scheduler

对于我来说,我似乎无法弄清楚如何将 Quartz 配置为具有两个调度程序实例。我目前使用 quartz 来获取一个调度程序实例,但想要两个实例,如 documentation 中所述,因为我有一些轻量级作业,我想在需要时运行,同时将一些重量级作业限制在少数情况下......就像文档描述的那样,但无法弄清楚。

任何人都可以给我一个简短的示例,说明属性文件应该是什么样子以及如何实例化单独的调度程序吗?

最佳答案

我没有通过属性文件配置它们的经验,但我有这样的设置:

  FileAppender fa = new FileAppender(new PatternLayout("%d{[dd/MM/yyy HH:mm:ss]} :: %2p :: %C{1} : %M :: %m%n"),
          ".\LogFiles\scheduler.log");
  fa.setName("QuartzScheduler");
  fa.setThreshold(Level.ALL);
  fa.setAppend(true);
  fa.activateOptions();
  org.apache.log4j.Logger.getLogger("org.quartz").addAppender(fa);
  org.apache.log4j.Logger.getLogger("org.quartz").setLevel(Level.INFO);
  SimpleThreadPool threadPool = new SimpleThreadPool(25, Thread.NORM_PRIORITY);
  JobStore jobStore = new RAMJobStore();
  threadPool.setInstanceName("MyQuartz");
  DirectSchedulerFactory.getInstance().createScheduler(threadPool, jobStore);
  Scheduler operationScheduler = DirectSchedulerFactory.getInstance().getScheduler();
  operationScheduler.start();

您没有理由不能创建一个小型工厂方法来配置诸如线程数量、实例名称、关联的日志文件等内容。这还可以让您的代码轻松扩展并创建调度程序按需,而不是手动编辑文件。

关于java - quartz 调度器/多个(非集群)调度器实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27965661/

相关文章:

java - 将 Firestore 时间戳存储到 ArrayList<String>,然后存储到日期

quartz-scheduler - Spring Integration 2 与 Quartz 调度器

java - quartz 2.x 触发器

java - jdk 8 不允许 switch 语句中出现字符串?为什么

java - Spring:使用声明的多个调度程序访问正确的 WebApplicationContext

Springquartz调度程序记住运行间信息

grails - 在 quartz 作业中通过 setter/getter 暴露配置属性

java - 如何在 Quartz 中对失败的作业进行排队?

java - 尝试阻止循环无限循环,但也避免每次运行时出现 "break"

java - 绑定(bind)同一个接口(interface)两次(Guice)