PHP code example of code-orange / redis-counting-semaphore
1. Go to this page and download the library: Download code-orange/redis-counting-semaphore 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/ */
code-orange / redis-counting-semaphore example snippets
use CodeOrange\RedisCountingSemaphore\Semaphore;
$client = new Predis\Client();
// Create a counting semaphore with a limit of 3
$sem = new Semaphore($client, 'semaphore-name', 3);
if ($sem->acquire(0.1, 10)) {
// Obtained the semaphore
use_limited_resource();
$sem->release();
} else {
// We weren't able to get a semaphore, even though we tried 10 times
// And slept for 0.1 seconds in between tries
}
/**
* Semaphore constructor.
* @param Client $client Predis client with an open connection
* @param string $name Name of the semaphore
* @param int $limit The amount of resources this semaphore protects
* @param int $timeout Timeout of an acquired semaphore, in seconds
*/
public Semaphore(Client $client, $name, $limit = 1, $timeout = 10);
/**
* Try to acquire a semaphore
*
* @param float $sleep Number of seconds to sleep between retries. If null, this function will not retry but return immediately.
* @param int $retries Number of times to retry before giving up
* @return bool Whether or not the semaphore was acquired correctly
*/
public function acquire($sleep = null, $retries = null);
/**
* Release this semaphore
*
* @return void
*/
public function release();
/**
* Refresh the semaphore
*
* @return bool Whether or not we still have the semaphore
*/
public function refresh();
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.