2012-01-19 8 views
0

私は私のASP.NETアプリケーションでのジョブスケジューリングのためのQuartz.NETを使用している、と私は私のglobal.asaxファイルに1つのトリガーを作成しました:このコードは私のために正常に動作Quartz.Net cronのトリガーC#の

// Code that runs on application startup 
ISchedulerFactory schedFact = new StdSchedulerFactory(); 
// get a scheduler 
IScheduler sched = schedFact.GetScheduler(); 
sched.Start(); 
// construct job info 
JobDetail jobDetail = new JobDetail("mySendMailJob", typeof(SendMailJob)); 

SimpleTrigger trigger = new SimpleTrigger("myTrigger", 
         null, 
         DateTime.UtcNow, 
         null, 
         SimpleTrigger.RepeatIndefinitely, 
         TimeSpan.FromSeconds(60)); 

sched.ScheduleJob(jobDetail, trigger); 

1分ごとに発火し、私の必要な作業をします。

このようにして、午前10時のような特定の時刻に発生するように、別のトリガーを作成しようとしましたが、それは私のためには機能しません。私はまた、失火の指示を作成したい。私のトリガーが特定の時間に起動されないとします。仕事をするためにトリガーをリロードするためのミスファイヤーの指示をどうやって得るのですか?

ISchedulerFactory schedFact = new StdSchedulerFactory(); 
// get a scheduler 
IScheduler sched = schedFact.GetScheduler(); 
sched.Start(); 
// construct job info 
JobDetail jobDetail = new JobDetail("mySendMailJob", typeof(SendMailJob)); 

Trigger trigger2 = TriggerUtils.MakeDailyTrigger(10, 00); 

// schedule the job for execution 
//trigger2.Name = "mySendMailTrigger"; 
sched.ScheduleJob(jobDetail, trigger2); 
+2

をWindowsサービスで仕事をする機会を持っている場合は、より良いものを実行します。ここでの問題を解決し

。 ASP.NETでバックグラウンドタスクを実行する場合、リスクがあります。 http://haacked.com/archive/2011/10/16/the-dangers-of-implementing-recurring-background-tasks-in-asp-net.aspx –

+0

Thanx Malcomの提案の場合、 しかし、それはIMです共有サーバー上でホストされるASPアプリケーションでの作業。そして、私は自分のウィンドウサービスをホストしています。私は自分のルーティンのうちの1つが日常的に、または定義された基準に従って、特定の時間にユーザーに電子メールを送信したいと考えています。長い検索とディスカッションの後、私はQuartzを見つけました.Netは私の望む仕事をします。 :) –

答えて

1

あなたは同じくらい簡単、CronMakerでcronのトリガー式を使用することができます。

0 0 10 1/1 * ? * 

そして、それを使用するようにCronTriggerクラスを作成し、documentationは、申し訳ありませんが、私は今の例を持っていない参照しますあなたができないなら、私は明日投稿します。

+0

Thanx Gustavo、 私はCronトリガーでうまくいったことがありますが、時にはそれが失敗しました –

関連する問題