是配置文件名" quartz.config"固定(意味着硬编码,不能改变)?

时间:2014-05-27 01:12:55

标签: c# configuration web-config quartz.net

我知道Quartz.Net有几种方法可以在启动时加载它:(来自http://jvilalta.blogspot.com/2011/03/how-does-quartznet-configuration-work.html

  1. 托管应用程序的配置文件
  2. 在环境变量中指定的文件
  3. quartz.config文件
  4. 嵌入式配置文件
  5. 注意quartz.config文件。

    我的问题:

    1. 是配置文件名" quartz.config"固定的(意思是硬编码, 不能改变?)

    2. 如果不是,我该如何更改?例如我想读一读 FinancialQuartz.config而不是quartz.config。

    3. 如果没有更改名称的选项" quartz.config"。我该如何指定 什么时候从FinancialQuartz.config或 CalculationQuartz.config? (我没有真正的情况 问题,只是想知道)

    4. 此致

3 个答案:

答案 0 :(得分:4)

我很困惑。

在DotNet中。您可以将app.config或web.config文件指向您选择的文件,如下所示。

<?xml version="1.0" encoding="utf-8"?>
<configuration>


    <configSections>
        <section name="quartz" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089" />
        </sectionGroup>

    </configSections>

    <quartz configSource="MyQuartzSettings.config" />

和#34; MyQuartzSettings.config&#34;看起来像这样(许多人的一个例子)

<quartz>

    <add key="quartz.plugin.jobInitializer.type" value="Quartz.Plugin.Xml.XMLSchedulingDataProcessorPlugin" />
    <add key="quartz.scheduler.instanceName" value="DefaultQuartzScheduler" />
    <add key="quartz.threadPool.type" value="Quartz.Simpl.SimpleThreadPool, Quartz" />
    <add key="quartz.threadPool.threadCount" value="10" />
    <add key="quartz.threadPool.threadPriority" value="2" />
    <add key="quartz.jobStore.misfireThreshold" value="60000" />
    <add key="quartz.jobStore.type" value="Quartz.Simpl.RAMJobStore, Quartz" />
    <add key="quartz.plugin.jobInitializer.fileNames" value="Quartz_Jobs_001.xml" />
    <add key="quartz.plugin.jobInitializer.failOnFileNotFound" value="true" />
    <add key="quartz.plugin.jobInitializer.scanInterval" value="120" />

</quartz>

这就是你在说什么吗?

答案 1 :(得分:2)

除了@granadaCoder给出的答案外,您还可以将quartz.config环境变量设置为要加载的文件的名称。请注意,configSource属性不是quartz.net特有的,而是.Net框架的一个特性:SectionInformation.ConfigSource Property

答案 2 :(得分:0)

我认为现在已经解决了。但是有一个解决方法。

将配置从其他方式读入var builder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddIniFile("someotherfile.ini", false, true); var config = builder.Build(); var quartzProperties = new System.Collections.Specialized.NameValueCollection(); foreach (var p in config.GetSection("Quartz").GetChildren().AsEnumerable()) { quartzProperties.Add(p.Key, p.Value); } IScheduler scheduler = new StdSchedulerFactory(quartzProperties).GetScheduler(); scheduler.Start();

create table author(name text unique, ...)