2016-05-11 82 views
1

我有相同的名稱和不同的參數的計劃作業,但它不會被添加到hangfire服務器,只有最後的工作被添加到服務器,我錯過了什麼?我的代碼如下爲什麼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); 

只有最後一份工作是在服務器Console.WriteLine("HelloNew jobCreated 2, ");

回答

3

你需要添加read the docs

每個重複作業都有自己的唯一標識符。在前面的示例中,它是使用給定調用表達式的類型和方法名稱(導致「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

Thanks @mason for help – MSTdev

相關問題