- This library will help you use mutex more effectively.
- Different mutex for different components are presented.
- In addition, you can add your own lockers and use within the library.
$customHandler = new \CustomHandler(/* some parameters */);
// You can send the handler directly to the constructor
$factory = new \Foxtech\Competitor($customHandler);
/* OR */
// via the setHandler method
$factory = new \Foxtech\Competitor();
$factory->setHandler($customHandler);
$timeout = 50;//seconds
$factory->getMutex('mutex_name')->acquire($timeout /* default timeout - 30 seconds */);
// some code
$factory->getMutex('mutex_name')->release();
You can also write your own mutex to a custom handler and use within our library.(Important: Your mutex must implement our interface)
$yourCustomHandler = new YourCustomHandler();
$factory = new \Foxtech\Competitor();
$factory->push(YourCustomHandler::class, YourMutex::class);
$factory->setHandler($yourCustomHandler);
$factory->getMutex('mutex_name')->acquire();
// some code
$factory->getMutex('mutex_name')->release();
PDO Handler
$pdo = new \PDO('mysql:host=localhost;dbname=test', 'root', 'toor');
$factory = new \Foxtech\Competitor($pdo);
$factory->getMutex('mutex_name')->acquire();
// some code
$factory->getMutex('mutex_name')->release();