public sealed class OperationLockingStrategy : IOperationLockingStrategy
Public NotInheritable Class OperationLockingStrategy
Implements IOperationLockingStrategy
public ref class OperationLockingStrategy sealed : IOperationLockingStrategy
[<SealedAttribute>]
type OperationLockingStrategy =
class
interface IOperationLockingStrategy
end
OperationLockingStrategy | Создаёт экземпляр объекта с указанием его зависимостей. |
Equals | Determines whether the specified object is equal to the current object. (Унаследован от Object) |
ExecuteInLockAsync |
Асинхронно выполняет действие actionAsync внутри эксклюзивной блокировки.
Никакое другое вычисление не сможет быть выполнено, пока выполняется действие.
При этом создаётся запись в Redis с ID = OperationTypeID
и операция cо случайным ID и указанным описанием OperationDescription.
Возвращает идентификатор операции или null, если блокировку взять не удалось. При взятии блокировки все операции не обязательно выполняются в одном и том же соединении с базой данных. Использование нескольких соединений может быть полезно для больших таймаутов, чтобы не удерживать одно и то же соединение несколько минут. Чтобы гарантировать выполнение на одном и том же соединении с БД, вызовите метод внутри блока await using(dbScope.Create()) { ... }. |
Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Унаследован от Object) |
GetHashCode | Serves as the default hash function. (Унаследован от Object) |
GetType | Gets the Type of the current instance. (Унаследован от Object) |
MemberwiseClone | Creates a shallow copy of the current Object. (Унаследован от Object) |
ReleaseLockAsync | Снять блокировку, если она была взята без последующего автоматического сброса. |
ToString | Returns a string that represents the current object. (Унаследован от Object) |
ExecuteInRolesLockAsync |
Асинхронно выполняет действие actionAsync внутри эксклюзивной блокировки на вычисление состава ролей или замещений.
Никакое другое вычисление не сможет быть выполнено, пока выполняется действие.
При этом создаётся операция CalculatingRoles с указанным описанием operationDescription.
Возвращает признак того, что блокировка была взята и действие было выполнено.
Значение false возвращается, если блокировку взять не удалось из-за таймаута при ожидании блокировки.
При взятии блокировки все операции не обязательно выполняются в одном и том же соединении с базой данных.
Использование нескольких соединений может быть полезно для больших таймаутов,
чтобы не удерживать одно и то же соединение несколько минут.
Чтобы гарантировать выполнение на одном и том же соединении с БД,
вызовите метод внутри блока using(dbScope.Create()) { ... }.
(Определяется RolesExtensions) |
Get | (Определяется ComHelper) |
Invoke | (Определяется ComHelper) |
Set | (Определяется ComHelper) |