0

Quartz でトリガーのジョブ データ マップを設定する際に問題が発生しています。プログラムで可能であることは知っていますが、xml ジョブ ファイルで実行する必要があります。ただし、トリガーに追加しようとするたびに、job-data-mapが無効であると表示されます。ジョブ ファイルの XSD (http://www.quartz-scheduler.org/xml/job_scheduling_data_2_0.xsd) を見ると、 abstractTriggerTypeを継承しているため、 cronタグの有効な子である必要があるように見えますが、私のアプリは勝ちましたそれを受け入れないでください。

これが私のコードです。Quartz.Net 2.0 を使用しています

<job>
  <name>StagingJob</name>
  <job-type>MyAssembly.StagingJob, MyAssembly</job-type>
  <durable>true</durable>
  <recover>false</recover>
</job>
<trigger>
  <cron>
    <name>StagingTrigger</name>
    <job-name>StagingJob</job-name>
    <misfire-instruction>SmartPolicy</misfire-instruction>
    <job-data-map>
      <entry>
        <key>end-time-cron</key>
        <value>0 59 * * * ?</value>
      </entry>
      <entry>
        <key>thread-count</key>
        <value>3</value>
      </entry>
    </job-data-map>
    <cron-expression>0 1 * * * ?</cron-expression>
  </cron>       
</trigger>

ジョブ データを xml 経由でトリガーに追加する正しい方法は何ですか?

4

1 に答える 1

1

要素misfire-instructionを削除してみてください。とにかくスマート ポリシーがデフォルトです。この要素を保持したい場合は、job-data-map 要素の後に配置する必要があります。Quartz は、XML 要素の順序付けに関して非常に厳密です。

VS プロパティ ウィンドウのスキーマをディストリビューションに含まれる XSD ファイルにポイントするように設定すると、Visual Studio はこのドキュメントでインテリセンスも提供するはずです。

于 2012-10-16T04:16:31.830 に答える