5

スケジューラが初めて起動されたときに一度実行され、その後毎日真夜中に実行されるようにジョブを設定しようとしています。ジョブとトリガーの XML は次のとおりです。1 日 1 回のトリガーは機能しますが、1 回限りのトリガーは機能しません。

    <job>
      <name>MyJob</name>
      <group>MyJobGroup</group>
      <job-type>MyScheduledJob, MyJobAssembly</job-type>
      <description>My job, yo</description>
      <durable>true</durable>
      <recover>false</recover>
    </job>
    <trigger>
      <cron>
        <name>MyTrigger</name>
        <group>MyTriggerGroup</group>
        <job-name>MyJob</job-name>
        <job-group>MyJobGroup</job-group>
        <cron-expression>0 0 0 1/1 * ? *</cron-expression>
      </cron>
        <simple>
            <name>MyOneTimeTrigger</name>
            <group>MyTriggerGroup</group>
            <description>Run once at startup, G</description>
            <misfire-instruction>SmartPolicy</misfire-instruction>
            <volatile>false</volatile>
            <job-name>MyJob</job-name>
            <job-group>MyJobGroup</job-group>
            <repeat-count>0</repeat-count>
            <repeat-interval>0</repeat-interval> 
      </simple>
    </trigger>
4

1 に答える 1

4

動作しないということは、トリガーが起動しないことを意味していると思います。たぶん、遅延がないため、失火しますか?<start-time-seconds-in-future/>将来的に追加するのはどうですか?

<simple>
        <name>MyOneTimeTrigger</name>
        <group>MyTriggerGroup</group>
        <description>Run once at startup, G</description>
        <misfire-instruction>SmartPolicy</misfire-instruction>
        <volatile>false</volatile>
        <job-name>MyJob</job-name>
        <job-group>MyJobGroup</job-group>
        <start-time-seconds-in-future>60</start-time-seconds-in-future>
        <repeat-count>0</repeat-count>
        <repeat-interval>0</repeat-interval> 
</simple>

それが機能する場合は、バグまたは機能と見なされる可能性があることに注意する必要があります。サーバーを再起動すると、トリガーが既に起動されて削除されているため、トリガーが再び起動します。参照: Quartz XML プラグインは、再起動後に起動されたトリガーを再スケジュールします

于 2012-05-21T16:29:24.433 に答える