В соответствии с 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
ценность?
Здесь вы идете, более подробная информация об исключении (извинения за отсутствие форматирования): Hangfire.Storage.DistributedLockTimeoutException: Тайм-аут истекший. Таймаут, прошедший до получения распределенной блокировки на ресурсе «xxx». на Hangfire.SqlServer.SqlServerDistributedLock.Acquire (соединение IDbConnection, ресурс String, тайм-аут TimeSpan) – natwallbank
У меня очень похожая проблема, ее общая проблема повторяющихся заданий, ее так грустно ... –