【问题标题】:Quartz Scheduler / Multiple (Non Clustered) Scheduler InstancesQuartz 调度器/多个(非集群)调度器实例
【发布时间】:2015-01-15 14:29:27
【问题描述】:

对于我的生活,我似乎无法弄清楚如何配置 Quartz 以拥有两个调度程序实例。我目前使用石英来获取一个调度程序实例,但想要两个实例,如documentation 中所述,因为我有一些轻量级作业我想在需要时运行,同时将一些重量级作业限制为几个实例。 ..正如文档描述的那样,但无法弄清楚。

谁能给我一个简单的例子,说明属性文件应该是什么样子以及如何实例化单独的调度程序?

【问题讨论】:

标签: java quartz-scheduler


【解决方案1】:

我没有通过属性文件配置它们的经验,但我通过这种方式进行了设置:

  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();

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

【讨论】:

  • 太棒了!很高兴我能帮忙:)
【解决方案2】:

我认为让多个实例正常工作的关键是确保将每个实例的名称设置为不同的名称。例如,我知道这可能会在从 spring 配置多个调度程序时导致问题(我相信这反映了quartz 本身的相同潜在问题。有关详细信息,请参阅此 spring 论坛帖子:

http://forum.spring.io/forum/spring-projects/container/32312-multiple-quartz-schedulerfactorybean-instances

【讨论】:

    【解决方案3】:

    在非 Spring 环境中,您应该创建两个具有不同 org.quartz.scheduler.instanceName 值的 StdSchedulerFactory 实例。像这样的:

    Properties config1 = new Properties();
    Properties config2 = new Properties();
    
    config1.setProperty("org.quartz.scheduler.instanceName", "Scheduler1");
    config2.setProperty("org.quartz.scheduler.instanceName", "Scheduler2");
    
    Scheduler scheduler1 = new StdSchedulerFactory(config1).getScheduler();
    Scheduler scheduler2 = new StdSchedulerFactory(config2).getScheduler();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-19
      • 1970-01-01
      • 2019-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-13
      相关资源
      最近更新 更多