2016-11-09 9 views
7

В соответствии с Hangfire 0.8.2 announcement post, Hangfire имеет фильтр DisableConcurrentExecution, который при применении к методу предотвращает одновременное выполнение нескольких экземпляров метода.Hangfire DisableConcurrentExecution: Что произойдет, когда истечет время ожидания?

Фильтр DisableConcurrentExecution принимает параметр timeoutInSeconds int. Из примера в связанном статье:

[DisableConcurrentExecution(timeoutInSeconds: 10 * 60)] 
public void SomeMethod() 
{ 
    // Operations performed inside a distributed lock 
} 

Мой вопрос: Что происходит, когда, учитывая работу, которая ждет на получение блокировки для метода DisableConcurrentExecution -filtered, время, работа ждет уже превышает timeoutInSeconds ценность?

ответ

13

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

я пошлю вам более подробную информацию, но я на свой телефон прямо сейчас :)

+2

Здесь вы идете, более подробная информация об исключении (извинения за отсутствие форматирования): Hangfire.Storage.DistributedLockTimeoutException: Тайм-аут истекший. Таймаут, прошедший до получения распределенной блокировки на ресурсе «xxx». на Hangfire.SqlServer.SqlServerDistributedLock.Acquire (соединение IDbConnection, ресурс String, тайм-аут TimeSpan) – natwallbank

+0

У меня очень похожая проблема, ее общая проблема повторяющихся заданий, ее так грустно ... –

 Смежные вопросы

  • Нет связанных вопросов^_^