PHP code example of fivesqrd / mutex

1. Go to this page and download the library: Download fivesqrd/mutex 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/ */

    

fivesqrd / mutex example snippets



Fivesqrd\Mutex;

$mutex = new Mutex\Factory([
    'aws' => array(
        'version'  => '2012-08-10',
        'region'   => 'eu-west-1',
        'endpoint' => 'http://192.168.254.10:8000',
        'credentials' => array(
            'key'    => 'my-key',
            'secret' => 'my-secret',
        )
    ),
    'namespace' => 'My-Example-App',
    'table'     => 'My-DynamoDb-Table' 
]);

echo date('Y-m-d H:i:s') . " Starting job\n";

if (!$mutex->lock(basename($argv[0]))->acquire(10)) {
    echo "- The work slot for this job has been locked, skipping...\n";
    exit;
}

echo  "- Lock acquired successfully...\n";

    /**
     * Execute the console command.
     *
     * @return mixed
     */
    public function handle()
    {
		 if (!resolve('mutex')->lock(self::class)->acquire()) {
		    $this->info("Failed to acquire lock for this command");
		    return;
		}

		/* logic here */

		$this->info("Command completed successfully");
	}