2016-06-23 7 views
2

私は彼の今日の会議についてユーザーに通知するためにhangFireを使用しています。ここに私のコードは、アプリケーションの起動や定期一意のIDを持つハングファイアスケジュールを使用

TimeSpan timeSpan = DateTime.Now- notificationTime ; 
BackgroundJob.Schedule(() => sendNotification(reminder.Meeting_Id), timeSpan); 

を実行し、いくつかの他の方法にある問題は、ユーザーが新しいスケジュール項目がhangfireに追加された私のwebisteを訪問する時はいつでもあります。

どのように特定の時間にスケジュールされたアイテムを実行し、このスケジュールに一意のIDを与えるようにHangfireを設定できますか?

答えて

0

あなたが特定の時間に起こるために何かをキューに入れることができなく、遅延の後に、あなたはちょうどあなたが仕事をエンキューしたい時に渡す必要があります。

String uniqueJobId = BackgroundJob.Schedule(() => Console.WriteLine("Task"), notificationTime); 

Scheduleメソッドは、文字列を返します。ジョブのIDで、必要に応じて後で参照することができます。

この時点でジョブがエンキューされることに注意してください。キューのステータスとサーバーが処理できるかどうかによって、ジョブが実行されるまで待機する可能性があります。あなたはあなたのキューの長さを維持するのに十分な容量を持っていることを除いて、これについてはあまりできません。

関連する問題