Как мы можем позволить повторяющейся работе запускаться только в одном случае в случае уменьшения масштаба? - PullRequest
0 голосов
/ 02 мая 2020

Я использую Hangfire для чтения файлов с FTP-сервера, и у меня есть несколько экземпляров сервера для чтения с FTP. Мне нужно, чтобы повторяющийся запуск задания выполнялся только в одном экземпляре, чтобы одно и то же задание не могло быть прочитано из одного и того же файла.

var jobId = BackgroundJob.Enqueue<FtpImageJob>(j => j.ExecuteAsync(null, device.NumericId, device.DeviceId, device.VehicleId, device.TenantId));
                BackgroundJob.ContinueJobWith<FtpDeleteJob>(jobId, j => j.ExecuteAsync(null, numericId), JobContinuationOptions.OnAnyFinishedState);

1 Ответ

0 голосов
/ 06 мая 2020

Вы можете использовать платный пакет Hangfire.Pro с функцией Mutex или украсить свою работу с атрибутом [DisableConcurrentExecution].

...