2

私は大きな問題を抱えています。それは、毎日17.29に特定のタスクを実行できるスケジューラーをWindowsAzureアプリケーションに実装したことです。実装には、Quartzであるサードパーティツールを使用しています。そして、次のコードを使用してスケジューラーを有効にします

ISchedulerFactory schedFact = new StdSchedulerFactory();
IScheduler sched = schedFact.GetScheduler();
sched.Start();
JobDetail jobDetail = new JobDetail("mySendMailJob", typeof(SendMailJob));
Trigger trigger = TriggerUtils.MakeDailyTrigger(17, 29); 
trigger.Name = "mySendMailTrigger";
sched.ScheduleJob(jobDetail, trigger);

そして、このコードをアプリケーションの開始に配置します。

私の質問は、このコードを一度実行すると、スケジューラーが動作を開始することです。次回は呼び出す必要はありません。では、スケジューラがすでに呼び出されているかどうかを確認するにはどうすればよいですか?同じコードを実行するたびにこのコードをアプリケーション開始に配置すると、まったく役に立ちません。方法があれば。誰かが知っているなら私を助けてください。私はC#を使用しています

4

1 に答える 1

1

これは、「何かを1回だけ実行する方法」という質問のバリエーションです。ほとんどの人には、自己選択型のコントローラーパターンを使用することをお勧めします。私はこの応答でそれを説明します。

于 2012-06-26T13:21:01.080 に答える