2016-05-11 71 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

相关问题