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