Я пытался создать несколько очередей, и в каждой очереди должно быть только одно количество рабочих.Итак, я сделал следующий код:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseHangfireDashboard("/scheduler", new DashboardOptions
{
Authorization = new[] { new HangFireAuthorization() },
AppPath = "/"
});
app.UseHangfireServer(new BackgroundJobServerOptions()
{
ServerName = string.Format("{0}:facebookqueue", Environment.MachineName),
Queues = new[] { "facebookqueue" },
WorkerCount = 1
});
app.UseHangfireServer(new BackgroundJobServerOptions()
{
ServerName = string.Format("{0}:googlequeue", Environment.MachineName),
Queues = new[] { "googlequeue" },
WorkerCount = 1
});
RecurringJob.AddOrUpdate<IScheduledJobs>(recurringJobId:
"FacebookExtractorJobYesterday",
methodCall: services => services.RecurringJobYesterday(null,
JobCancellationToken.Null),
cronExpression: cronExp, timeZone: TimeZoneInfo.Local, queue: "facebookqueue");
RecurringJob.AddOrUpdate<IGoogleScheduledJobs>(recurringJobId:
"GoogleExtractorJobYesterday",
methodCall: services => services.RecurringJobYesterday(null,
JobCancellationToken.Null),
cronExpression: cronExp, timeZone: TimeZoneInfo.Local, queue: "googlequeue");
}
Вышеприведенный код решил мою задачу, и он добавил два сервера с разными очередями, и каждая очередь имеет одно число рабочих, так что каждое задание может выполняться в своей очереди и вызыватькаждая очередь (сервер) имеет только одно число рабочих, одно и то же задание никогда не будет выполняться дважды одновременно.![enter image description here](https://i.stack.imgur.com/FXhOv.png)
Но каждый раз, когда какое-либо задание не выполняется и предпринимается попытка повторения, оно ставится в очередь по умолчанию.![enter image description here](https://i.stack.imgur.com/FiRUQ.png)
Я хочу, чтобы каждое задание ставилось в очередь в своей собственной очереди (на сервере).
Я буду очень благодаренза любую помощь.