0

我使用 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);
4

2 回答 2

0

如果您希望将作业的执行限制在众多 Hangfire 服务器中的一个,请使用仅存在于一台服务器上的单独队列。这样,您的重复作业将仅在为该队列提供服务的挂火服务器上执行。

于 2020-07-12T02:26:30.307 回答
0

您可以使用具有 Mutex 功能的付费 Hangfire.Pro 软件包,也可以使用[DisableConcurrentExecution]属性装饰您的工作职能。

于 2020-05-06T14:28:55.707 回答