2016-09-02 3 views
0

Похоже StdSchedulerFactory возвращает одноэлементных с именем, определенным в конфигурации:Сколько планировщиков я могу создать для каждого приложения?

<add key="quartz.scheduler.instanceName" value="MyQuartzScheduler" /> 

В кварце конфигурации секция состоит из пар ключ-значение она выглядит как используя фабрику для инстанцировании планировщик ограничивает количество доступных планировщиков к одному.

ответ

2

AFIAK, вы можете создать столько планировщики, как вам нравится в любом приложении, но вы не можете использовать стандартный подход кварц конфигурации для этого, как ожидают, только один набор свойств планировщика (смотрите в StdSchedulerFactoryimplementation и this блоге, если интересно) :

По умолчанию, в Quartz.Net, StdSchedulerFactory отвечает за настройку планировщика. Когда планировщик Quartz.Net запущен, завод будет пытаться автоматически настроить планировщик с помощью поиска информации о конфигурации в разных местах:

  • конфигурационный файл хостинг приложения
  • файл, указанный в переменной окружения
  • файл quartz.config
  • внедренный файл конфигурации

Так что вы можете d о не использовать автоматическую настройку планировщика, но
сам создать отдельные коллекции свойств и передать их в планировщик конструкторами создания:

public StdSchedulerFactory(NameValueCollection props); 
  • используя код подход:

    NameValueCollection scheduler1Properties = new NameValueCollection();  
    properties["quartz.scheduler.instanceName"] = "SingleThreadScheduler"; 
    properties["quartz.threadPool.type"] = "Quartz.Simpl.SimpleThreadPool, Quartz"; 
    properties["quartz.threadPool.threadCount"] = "1"; 
    ... 
    var factory = new StdSchedulerFactory(scheduler1Properties); 
    
  • или вы можете создать отдельные конфигурации кварца и напрямую использовать класс кварца PropertiesParser для чтения

    /// <summary> 
    /// Reads the properties from file system. 
    /// </summary> 
    /// <param name="fileName">The file name to read resources from.</param> 
    /// <returns></returns> 
    public static PropertiesParser ReadFromFileResource(string fileName) 
    

    и получить коллекция:

    /// <summary> 
    /// Gets the underlying properties. 
    /// </summary> 
    /// <value>The underlying properties.</value> 
    public virtual NameValueCollection UnderlyingProperties 
    { 
        get { return props; } 
    } 
    

    // PropertiesParser класс используется непосредственно в default конфигурации чтения реализации.

Смежные вопросы