Расписание Hangfire Фоновые задачи для другого сервера - PullRequest
0 голосов
/ 30 октября 2019

У меня есть приложение .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, а не только тем, который поставил их в очередь?

...