MysqlMutex
API reference › yii › mutex › MysqlMutex
MysqlMutex implements mutex “lock” mechanism via MySQL locks.
Application configuration example:
[ 'components' => [ 'db' => [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=127.0.0.1;dbname=demo', ] 'mutex' => [ 'class' => 'yii\mutex\MysqlMutex', ], ],]See also: Mutex.
Properties
Section titled “Properties”| Property | Type | Description | Defined by |
|---|---|---|---|
$autoRelease | bool | Whether all locks acquired in this process (i.e. local locks) must be released automatically before finishing script execution. Default: true. | Mutex |
$behaviors read-only | array<yii\<static>> | List of behaviors attached to this component. | yii\ |
$db | yii\| | The DB connection object or the application component ID of the DB connection. Default: 'db'. | DbMutex |
$keyPrefix | yii\| | Prefix value. Default: null. Available since 2.0.47. | MysqlMutex |
Methods
Section titled “Methods”| Method | Description | Defined by |
|---|---|---|
__construct() | Constructor. | yii\ |
__call() | Calls the named method which is not a class method. | yii\ |
__clone() | This method is called after the object is created by cloning an existing one. | yii\ |
__get() | Returns the value of a component property. | yii\ |
__isset() | Checks if a property is set, i.e. defined and not null. | yii\ |
__set() | Sets the value of a component property. | yii\ |
__unset() | Sets a component property to be null. | yii\ |
acquire() | Acquires a lock by name. | Mutex |
attachBehavior() | Attaches a behavior to this component. | yii\ |
attachBehaviors() | Attaches a list of behaviors to the component. | yii\ |
behaviors() | Returns a list of behaviors that this component should behave as. | yii\ |
canGetProperty() | Returns a value indicating whether a property can be read. | yii\ |
canSetProperty() | Returns a value indicating whether a property can be set. | yii\ |
className() static | Returns the fully qualified name of this class. | yii\ |
detachBehavior() | Detaches a behavior from the component. | yii\ |
detachBehaviors() | Detaches all behaviors from the component. | yii\ |
ensureBehaviors() | Makes sure that the behaviors declared in behaviors() are attached to this component. | yii\ |
getBehavior() | Returns the named behavior object. | yii\ |
getBehaviors() | Returns all behaviors attached to this component. | yii\ |
hasEventHandlers() | Returns a value indicating whether there is any handler attached to the named event. | yii\ |
hasMethod() | Returns a value indicating whether a method is defined. | yii\ |
hasProperty() | Returns a value indicating whether a property is defined for this component. | yii\ |
init() | Initializes MySQL specific mutex component implementation. | MysqlMutex |
isAcquired() | Checks if a lock is acquired by the current process. | Mutex |
off() | Detaches an existing event handler from this component. | yii\ |
on() | Attaches an event handler to an event. | yii\ |
release() | Releases acquired lock. This method will return false in case the lock was not found. | Mutex |
trigger() | Triggers an event. | yii\ |
acquireLock() protected | Acquires lock by given name. | MysqlMutex |
hashLockName() protected | Generate hash for lock name to avoid exceeding lock name length limit. | MysqlMutex |
prepareName() protected | Prepare lock name | MysqlMutex |
releaseLock() protected | Releases lock by given name. | MysqlMutex |
Property details
Section titled “Property details”$keyPrefix
Section titled “$keyPrefix ”public yii\db\Expression|string|null $keyPrefix = nullPrefix value.
If null (by default) then connection’s current database name is used.
Since
2.0.47
Method details
Section titled “Method details”init()
Section titled “init() ”public function init(): mixedInitializes MySQL specific mutex component implementation.
acquireLock()
Section titled “acquireLock() ”protected function acquireLock(string $name, int $timeout = 0): boolAcquires lock by given name.
Parameters
| Parameter | Type | Description |
|---|---|---|
$name | string | Of the lock to be acquired. |
$timeout | int | Time (in seconds) to wait for lock to become released. |
Returns
bool: Acquiring result.
See also
hashLockName()
Section titled “hashLockName() ”protected function hashLockName(string $name): stringGenerate hash for lock name to avoid exceeding lock name length limit.
Parameters
| Parameter | Type | Description |
|---|---|---|
$name | string |
Returns
string
Since
2.0.16
See also
prepareName()
Section titled “prepareName() ”protected function prepareName(): arrayPrepare lock name
Returns
array: Expression and params
Since
2.0.48
releaseLock()
Section titled “releaseLock() ”protected function releaseLock(string $name): boolReleases lock by given name.
Parameters
| Parameter | Type | Description |
|---|---|---|
$name | string | Of the lock to be released. |
Returns
bool: Release result.
See also