使用quartz.net xml作业定义文件中的参数配置作业

zSy*_*sis 1 c# .net-4.0 quartz.net

我有一个作业,该作业的构造函数包含参数,并且我想知道是否可以通过传递作业配置文件中定义的参数来配置石英以实例化对象。我试过使用job-data-map元素,但这似乎不起作用。这是可能吗?

谢谢

jvi*_*lta 5

作业必须具有不需要参数的构造函数。为了通过xml将参数传递给作业,请像这样使用xml:

<job>
  <name>nativeJobExample</name>
  <group>nativeJobExampleGroup</group>
  <description>Sample job for Quartz Server</description>
  <job-type>Quartz.Job.NativeJob, Quartz</job-type>
  <job-data-map>
    <entry>
      <key>command</key>
      <value>native_job_example.bat</value>
    </entry>
    <entry>
      <key>consumeStreams</key>
      <value>true</value>
    </entry>
  </job-data-map>
</job>
Run Code Online (Sandbox Code Playgroud)

然后,您可以通过传递给作业的execute方法的数据映射来访问数据:

    public virtual void Execute(IJobExecutionContext context)
    {
        JobDataMap data = context.MergedJobDataMap;

        string command = data.GetString(PropertyCommand);
Run Code Online (Sandbox Code Playgroud)