Почему 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, ");

1 ответ

Вам нужно прочитать документы.

Каждое повторяющееся задание имеет свой уникальный идентификатор. В предыдущих примерах он был сгенерирован неявно, с использованием имен типов и методов данного выражения вызова (в результате в качестве идентификатора используется "Console.Write"). Класс RecurringJob содержит перегрузки, которые принимают явно определенный идентификатор задания. Так что вы можете обратиться к работе позже.

Поскольку тип и имя метода каждый раз одинаковы, в результате они имеют одинаковый идентификатор и, следовательно, одно и то же задание, и поскольку метод называется AddOrUpdate, он каждый раз перезаписывается.

Чтобы не перезаписывать, назначайте явные уникальные идентификаторы для каждого повторяющегося задания.

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);
Другие вопросы по тегам