У меня есть приложение .Net, которое использует несколько серверов Hangfire.
Я хочу, чтобы один Hangfire RecurringJob запускал несколько фоновых заданий, которые могут быть получены любым доступным сервером. В настоящее время всякий раз, когда я планирую фоновые задания из задания Hangfire, только сервер, который их запланировал, будет их обрабатывать.
Например, у меня есть 5 серверов Hangfire и 10 задач. Я бы хотел, чтобы на каждом сервере Hangfire было 2 задачи, вместо этого я вижу 1 сервер с 10 задачами и 4 с 0.
Итак, снова у меня есть 5 серверов Hangfire, все из которых используют одну базу данных, и 1 RecurringJobэтот RecurringJob просто читает некоторые файлы и ставит в очередь несколько фоновых заданий.
foreach (var file in reportSourceSetFileList)
{
_logger.LogInformation($"Queuing Background job for: {file}");
var backgroundJobId = BackgroundJob.Enqueue<IJobHandler>(job => job.ProcessFile(file, files, null));
}
Однако, только сервер Hangfire, который запустил RecurringJob, будет обрабатывать задание в очереди.
Как я могу получить эти в очередизадания будут обрабатываться любым из 5 моих серверов Hangfire, а не только тем, который поставил их в очередь?