2016-09-13 2 views
0

У меня есть два сервера ServerA и ServerB. Они имеют одну и ту же базу данных hangfire. У меня две работы, JobA и JobB.Hangfire - Повторяющаяся работа с указанным именем очереди

На ServerA, я использую:

RecurringJob.AddOrUpdate(
      "JobA", 
      () => new JobA().Execute(), 
      this._configuration.Schedule, queue: "A"); 

На ServerB, я использую:

RecurringJob.AddOrUpdate(
      "JobB", 
      () => new JobB().Execute(), 
      this._configuration.Schedule, queue: "B"); 

Проблема состоит в том, что каждая работа является "в очереди" в таблице "Работа", они никогда не казнены.

Если я удаляю переопределение очереди в методе «AddOrUpdate», выполняются задания (очевидно, без настройки очереди).

Что-то не хватает? Как настроить повторяющиеся задания с конфигурацией очереди?

ответ

1

код не хватает ...

ServerA:

var options = new BackgroundJobServerOptions 
      { 
       Queues = new[] { "A" } 
      }; 

      this._backgroundJobServer = new BackgroundJobServer(options); 

ServerB:

var options = new BackgroundJobServerOptions 
      { 
       Queues = new[] { "B" } 
      }; 

      this._backgroundJobServer = new BackgroundJobServer(options); 
+0

Я использую hangfire 1.5.6. У меня есть аналогичная проблема. Вы выяснили решение? –

1

Solution - может помочь кому-то с подобным вопросом:

app.UseHangfireServer(new BackgroundJobServerOptions 
{ 
    // queue name must be in lowercase 
    Queues = new[] { "qname" } //This will setup the server to only process qname queues 
}); 

RecurringJob.AddOrUpdate(
    () => new JobB().Execute(), 
    Cron.Hourly(5), 
    null, 
    "qname"); 
Смежные вопросы