PHP code example of yiisoft / mutex-file

1. Go to this page and download the library: Download yiisoft/mutex-file library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

yiisoft / mutex-file example snippets


$mutex = new \Yiisoft\Mutex\File\FileMutex(
    'mutex-name',
    '/path/to/directory/for/storing/mutex/files',
    0775, // Optional. The permission to be set for newly created mutex directory. Default is `0775`.
    0777, // Optional. The permission to be set for newly created mutex files. Default is `null`.
);

$mutexFactory = new \Yiisoft\Mutex\File\FileMutexFactory(
    '/path/to/directory/for/storing/mutex/files',
    0775, // Optional. The permission to be set for newly created mutex directory. Default is `0775`.
    0777, // Optional. The permission to be set for newly created mutex files. Default is `null`.
);

$synchronizer = new \Yiisoft\Mutex\Synchronizer($mutexFactory);

$newCount = $synchronizer->execute('critical', function () {
    return $counter->increase();
}, 10);

$simpleMutex = new \Yiisoft\Mutex\SimpleMutex($mutexFactory);

if (!$simpleMutex->acquire('critical', 10)) {
    throw new \Yiisoft\Mutex\Exception\MutexLockedException('Unable to acquire the "critical" mutex.');
}

$newCount = $counter->increase();
$simpleMutex->release('critical');

$mutex = $mutexFactory->createAndAcquire('critical', 10);
$newCount = $counter->increase();
$mutex->release();

$mutex = $mutexFactory->create('critical');

if (!$mutex->acquire(10)) {
    throw new \Yiisoft\Mutex\Exception\MutexLockedException('Unable to acquire the "critical" mutex.');
}

$newCount = $counter->increase();
$mutex->release();

$mutex = $mutex->withRetryDelay(100);