定期的にバックグラウンドでジョブを実行し、ユーザーがキーを押すのを待つ単純なコンソール アプリケーションがあります。
スケジューラにQuartzライブラリを使用しており、次のようなコードがあります。
schedulerFactory = new StdSchedulerFactory();
scheduler = schedulerFactory.GetScheduler();
scheduler.Start();
myTrigger = TriggerUtils.MakeDailyTrigger(..., ...);
myJob = new JobDetail(..., null, typeof(MyJobClass));
scheduler.ScheduleJob(myJob, myTrigger);
Console.WriteLine("Press 'Q' to exit");
while (Console.ReadKey() != new ConsoleKeyInfo('q', ConsoleKey.Q, false, false, false))
{
}
それは問題なく動作しますが、いくつかの条件では、トリガーを一度実行するように構成します。
トリガーされたジョブが 1 回実行され、純粋な Quartz API でジョブが起動されないことをどのように知ることができますか? そのためにセマフォと低レベルのマルチスレッドを使用できますが、純粋なQuartzアプローチが必要だと思います。
前もって感謝します!