我使用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);
您可以使用带有Mutex功能的付费Hangfire.Pro软件包,或使用[DisableConcurrentExecution]
属性装饰您的工作功能。