1. Go to this page and download the library: Download sensiolabs/consul-php-sdk 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/ */
$snapshot = new Consul\Services\Snapshot();
file_put_contents('backup.snap', $snapshot->save()->getBody());
// Later...
$snapshot->restore(file_get_contents('backup.snap'));
use Consul\Helper\LockHandler;
$lock = new LockHandler('locks/my-job');
if (!$lock->lock()) {
echo "The lock is already acquired by another node.\n";
exit(1);
}
// Do your job here...
$lock->release();
use Consul\Helper\MultiLockHandler;
use Consul\Services\KV;
use Consul\Services\Session;
$lock = new MultiLockHandler(['resource1', 'resource2'], 60, new Session(), new KV(), 'my/lock/');
if ($lock->lock()) {
try {
// Do your job here...
// and call $lock->renew() before the TTL (60s) expires, if needed
} finally {
$lock->release();
}
}
use Consul\Helper\MultiSemaphore;
use Consul\Helper\MultiSemaphore\Resource;
use Consul\Services\KV;
use Consul\Services\Session;
$resources = [
new Resource('resource1', 2, 7),
new Resource('resource2', 3, 6),
new Resource('resource3', 1, 1),
];
$semaphore = new MultiSemaphore($resources, 60, new Session(), new KV(), 'my/semaphore');
if ($semaphore->acquire()) {
try {
// Do your job here...
} finally {
$semaphore->release();
}
}
bash
composer
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.