为什么 HangFire 同名重复性工作不起作用?

MST*_*dev 1 asp.net asp.net-mvc jobs 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);
Run Code Online (Sandbox Code Playgroud)

服务器中只添加最后一个作业 Console.WriteLine("HelloNew jobCreated 2, ");

mas*_*son 5

你需要阅读文档

每个循环作业都有自己的唯一标识符。在前面的示例中,它是隐式生成的,使用给定调用表达式的类型和方法名称(导致“Console.Write”作为标识符)。RecurringJob 类包含采用显式定义的作业标识符的重载。以便您以后可以参考作业。

由于类型和方法名称每次都相同,结果是它们具有相同的 ID,因此是相同的作业,并且由于该方法称为 AddOr Update,因此每次都会被覆盖。

为了不被覆盖,请为每个重复性作业分配明确的唯一标识符。

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);
Run Code Online (Sandbox Code Playgroud)