2012-11-27 11 views
9

私はC#でQuartz.NETを使用していますが、CronTriggerで失火命令を設定する際に問題があります。私はQuartz DBがインストールされたSQLバックエンドを実行しています。私は仕事を作成し、スケジューラを実行するためにうまく動作する次のコードを持っています。私がアクセスできるQuartz.NETの設定MisfireInstruction

IScheduler _scheduler; 
IJobDetail job; 
ISchedulerFactory sFactory; 
ICronTrigger trig; 

sFactory = new StdSchedulerFactory(); 

_scheduler = sFactory.GetScheduler(); 
_scheduler.Start(); 

job = JobBuilder.Create<Test>().WithIdentity("testJob", "testGroup").Build(); 
trig = (ICronTrigger) TriggerBuilder.Create().WithIdentity("testTrigger", "testGroup").WithCronSchedule("0/10 * * * * ?").Build(); int i = trig.MisfireInstruction; 

_scheduler.ScheduleJob(job, trig); 

のみmisfireinstructionはintですtrig.MisfireInstructionある、と私はそれを設定することはできません。 CronScheduleBuilderにはWithMisfireHandlingInstructionで始まる関数もあります。

+0

'MisfireInstruction.CronTrigger.FireOnceNow'は私が探しているものかもしれません...? –

+0

私はあなたのタイトルを編集しました。 「[質問には「タイトル内に「タグ」を含める必要がありますか」(http://meta.stackexchange.com/questions/19190/)」を参照してください。コンセンサスは「いいえ、そうすべきではありません」です。 –

+0

ありがとうございました! –

答えて

15

あなたのトリガの作成は、次のようにする必要があります:

  • WithMisfireHandlingInstructionDoNothing
  • WithMisfireHandlingInstructionFireAndProceed
  • WithMisfireHandlingInstructionIgnoreMisfires

trig = (ICronTrigger)TriggerBuilder 
     .Create() 
     .WithIdentity("testTrigger", "testGroup") 
     .WithCronSchedule("0/10 * * * * ?", x => x.WithMisfireHandlingInstructionFireAndProceed()) 
     .Build(); 

あなたはこれらのオプションを使用することができます

hereという良い説明があります。

+0

パーフェクト、それはまさに私が必要としていたものです。 ありがとうございました! –

+0

(私は投票権を持っていますが、まだ十分な担当者がいません) –

+0

私は助けてくれてうれしいです。あなたはいつでも私の将来を賞賛することができます:-)乾杯。 – LeftyX

関連する問題