1

Quartz.netを使い始めたばかりです。複数のジョブをスケジュールするための小さなルーチンを作成しました。これを正しくコーディングしたかどうかは本当にわかりません。うまくいけば、Quartz.NETの専門家が助けてくれるでしょう。私は3つの質問があります:

  1. トリガーの設定は正しいように見えますか?毎日午前9時と午後3時にジョブを実行したいと思います(market.LocalOpenTimeプロパティは表示されませんが、今日の日付は常に午前9時で、他のオブジェクトは午後3時です。

  2. プログラムを実行すると、常に午前9時のジョブ(過去にスケジュールされた)が実行されることに気付きました。とにかく私はこの機能をオフにすることができますか?プログラムは午後1時に実行しました。午後4時に実行すると、過去にスケジュールされた2つのジョブが実行されると思います。

  3. これらのジョブを平日にのみ実行するにはどうすればよいですか?

    foreach (IJob job in GetJobsToSchedule())
    {
        i++;
        var market = (IMarket)job;
    
        IJobDetail jobDetail = new JobDetailImpl(market.JobName, null, market.GetType());           
        ITrigger trigger = new SimpleTriggerImpl(market.JobName, i.ToString(), market.LocalOpenTime, null, 1000, new TimeSpan(1, 0, 0, 0));
    
        sched.ScheduleJob(jobDetail, trigger);
    }
    
4

1 に答える 1

3

1)CronTriggerImplのスケジュールでの使用を検討することをお勧めし0 0 9,15 * * ?ます。これにより、1つのトリガーでスケジュール全体を設定できます。これは、cronトリガーに関する優れたチュートリアルです(以前のQuartzバージョン用ですが):http: //quartznet.sourceforge.net/tutorial/lesson_6.html

2)myCronTrigger.MisfireInstructionプロパティをDoNothingに設定します。ドキュメントには、この値はCronTriggerImplクラスで定義する必要があると記載されていますが、表示されませんでした。VisualStudioでIntelliSenseを使用すると幸運が得られる場合があります。

3)上記(1)のCronチュートリアルリンクを確認してください。次のようなものを使用できます。0 0 9,15 * * MON-FRI

于 2012-05-02T20:04:02.500 に答える