2016-05-11 5 views
1

私は同じ名前と異なるパラメータを持つスケジュールされたジョブを持っていましたが、ハングファイアサーバーに追加されていません。私のコードは繰り返しジョブでHangFireの同じ名前が機能しないのはなぜですか?

 RecurringJob.AddOrUpdate(
      () => Console.WriteLine("HelloNew jobCreated, "), 
      Cron.Minutely); 
     RecurringJob.AddOrUpdate(
      () => Console.WriteLine("HelloNew jobCreated 12, "), 
      Cron.Minutely); 
     RecurringJob.AddOrUpdate(
      () => Console.WriteLine("HelloNew jobCreated 2, "), 
      Cron.Minutely); 

を下回っているだけの最後の仕事は、あなたがread the docsに必要なサーバーにConsole.WriteLine("HelloNew jobCreated 2, ");

答えて

3

が追加されます。

各定期ジョブには固有の識別子があります。前の例では、指定された呼び出し式の型とメソッドの名前を使用して暗黙的に生成されました(結果として識別子として "Console.Write")。 RecurringJobクラスには、明示的に定義されたジョブ識別子を使用するオーバーロードが含まれています。後でその仕事を参照することができます。

タイプとメソッド名は毎回同じであるので、結果は、彼らが同じIDを持っているので、同じ仕事であり、この方法はAddOr 更新と呼ばれているので、それが毎回上書きされますです。

上書きしないようにするには、定期ジョブごとに明示的な一意の識別子を割り当てます。

RecurringJob.AddOrUpdate(
     "Job1", 
     () => Console.WriteLine("HelloNew jobCreated, "), 
     Cron.Minutely); 
RecurringJob.AddOrUpdate(
     "Job2", 
     () => Console.WriteLine("HelloNew jobCreated 12, "), 
     Cron.Minutely); 
RecurringJob.AddOrUpdate(
     "Job3", 
     () => Console.WriteLine("HelloNew jobCreated 2, "), 
     Cron.Minutely); 
+0

ありがとう@mason for help – MSTdev

関連する問題