Spec-Zone.ru › Yii 2.0

Абстрактный класс yii\mutex\Mutex

Все классы | Свойства | Методы
Наследование yii\mutex\Mutex » yii\base\Component » yii\base\Object
Реализует yii\base\Configurable
Подклассы yii\mutex\DbMutex, yii\mutex\FileMutex, yii\mutex\MysqlMutex, yii\mutex\OracleMutex, yii\mutex\PgsqlMutex, yii\redis\Mutex
Доступен с версии 2.0
Исходный код https://github.com/yiisoft/yii2/blob/master/framework/mutex/Mutex.php

Компонент Mutex позволяет обеспечить взаимоисключение при одновременном выполнении процессов, чтобы предотвратить «гонки».

Это достигается с помощью механизма «блокировки». Каждый потенциально конкурирующий поток сотрудничает, приобретая блокировку перед доступом к соответствующим данным.

Пример использования:

if ($mutex->acquire($mutexName)) {
    // business logic execution
} else {
    // execution is blocked!
}

Это базовый класс, который необходимо расширить для реализации фактического механизма блокировки.

Публичные свойства

Свойство Тип Описание Определено в
$autoRelease boolean Выполнять ли автоматическое освобождение всех блокировок, полученных в данном процессе (т.е. локальные блокировки), перед завершением выполнения скрипта. yii\mutex\Mutex
$behaviors yii\base\Behavior[] Список поведений, прикрепленных к этому компоненту yii\base\Component

Общедоступные методы

Метод Описание Определено в
__call() Вызывает метод с указанным именем, который не является методом класса. yii\base\Object
__clone() Этот метод вызывается после создания объекта путем клонирования существующего. yii\base\Component
__construct() Конструктор. yii\base\Object
__get() Возвращает значение свойства объекта. yii\base\Object
__isset() Проверяет, установлено ли свойство, т.е. определено и не равно null. yii\base\Object
__set() Устанавливает значение свойства объекта. yii\base\Object
__unset() Устанавливает свойство объекта в null. yii\base\Object
acquire() Получает блокировку по имени. yii\mutex\Mutex
attachBehavior() Присоединяет поведение к компоненту. yii\base\Component
attachBehaviors() Присоединяет список поведений к компоненту. yii\base\Component
behaviors() Возвращает список поведений, по которым должен действовать этот компонент. yii\base\Component
canGetProperty() Возвращает значение, указывающее, можно ли прочитать свойство. yii\base\Object
canSetProperty() Возвращает значение, указывающее, можно ли установить свойство. yii\base\Object
className() Возвращает полное квалифицированное имя этого класса. yii\base\Object
detachBehavior() Отсоединяет поведение от компонента. yii\base\Component
detachBehaviors() Отсоединяет все поведения от компонента. yii\base\Component
ensureBehaviors() Убеждается, что поведения, объявленные в behaviors(), присоединены к этому компоненту. yii\base\Component
getBehavior() Возвращает объект поведения с указанным именем. yii\base\Component
getBehaviors() Возвращает все присоединенные к этому компоненту поведения. yii\base\Component
hasEventHandlers() Возвращает значение, указывающее, есть ли обработчик, присоединенный к указанному событию. yii\base\Component
hasMethod() Возвращает значение, указывающее, определен ли метод. yii\base\Object
hasProperty() Возвращает значение, указывающее, определено ли свойство. yii\base\Object
init() Инициализирует компонент Mutex. yii\mutex\Mutex
off() Отсоединяет существующий обработчик событий от этого компонента. yii\base\Component
on() Присоединяет обработчик событий к событию. yii\base\Component
release() Освобождает полученную блокировку. Этот метод вернет false в случае, если блокировка не найдена. yii\mutex\Mutex
trigger() Вызывает событие. yii\base\Component

Защищенные методы

Метод Описание Определено в
acquireLock() Этот метод должен быть расширен конкретными реализациями Mutex. Получает блокировку по имени. yii\mutex\Mutex
releaseLock() Этот метод должен быть расширен конкретными реализациями Mutex. Освобождает блокировку по заданному имени. yii\mutex\Mutex

Подробное описание свойств

$autoRelease общедоступное свойство

Указывает, должны ли все блокировки, полученные в этом процессе (т.е. локальные блокировки), автоматически освобождаться перед завершением выполнения скрипта. По умолчанию значение true. Установка этого свойства в true означает, что все блокировки, полученные в этом процессе, должны быть освобождены (независимо от ошибок или исключений).

public boolean $autoRelease = true

Подробное описание методов

acquire() общедоступный метод

Получает блокировку по имени.

общедоступный boolean acquire ( $name, $timeout = 0 )
$name string

Имя блокировки для получения. Должно быть уникальным.

$timeout integer

Время ожидания освобождения блокировки. По умолчанию ноль, что означает, что метод вернёт false сразу же, если блокировка уже была получена.

return boolean

Результат получения блокировки.

acquireLock() защищённый абстрактный метод

Этот метод должен быть расширен конкретными реализациями Mutex. Получает блокировку по имени.

защищённый абстрактный boolean acquireLock ( $name, $timeout = 0 )
$name string

Имя блокировки для получения.

$timeout integer

Время ожидания освобождения блокировки.

return boolean

Результат получения блокировки.

init() общедоступный метод

Инициализирует компонент Mutex.

общедоступный void init ( )

release() общедоступный метод

Освобождает полученную блокировку. Этот метод вернёт false, если блокировка не найдена.

общедоступный boolean release ( $name )
$name string

Имя блокировки для освобождения. Эта блокировка должна уже существовать.

return boolean

Результат освобождения блокировки: false, если блокировка с заданным именем не найдена.

releaseLock() защищённый абстрактный метод

Этот метод должен быть расширен конкретными реализациями Mutex. Освобождает блокировку по заданному имени.

защищённый абстрактный boolean releaseLock ( $name )
$name string

Имя блокировки для освобождения.

return boolean

Результат освобождения.

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-mutex-mutex.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API