Type
magento2-module
A Magento 2 module which provides a multi-server lock service
magento2-module
MIT
None
None
None
None
None
A Magento 2 module which provides a multi-server lock service. This allows developers to apply mutual exclusion locks to shared resources so that they are not accessed simultaneously.
magento/framework
module 100 or newer.composer require snowio/magento2-lock
php bin/magento setup:upgrade
php bin/magento setup:di:compile
php bin/magento cache:flush
The lock service can be accessed through dependency injection. Please refer the dependency injection section of the Magento DevDocs for more information on how to use dependency injection.
public boolean LockService::acquireLock(string $name, int $timeout)
Attempt to obtain a lock
$lockName
: The lock identifier/name$timeout
: Lock timeout. A negative timeout implies an infinite timeout.A boolean indicating if the the lock was acquired.
public LockService::releaseLock($lockName)
Release the lock
$lockName
: The lock identifier/namenamespace Vendor\Module\Model\Accessors;
class ResourceAccessor
{
private $lockService;
public function __construct(
SnowIO\Lock\Api\LockService $lockService
) {
$this->lockService = $lockService
}
public function access($resource)
{
$lockName = //.. resource lock name
//try acquire the lock
if (!$this->lockService->acquireLock($lockName, 0)) {
//Lock was not acquired ...
}
//Lock was acquired
try {
// Process $resource
} finally {
//release the lock
$this->lockService->releaseLock($lockName);
}
}
}
X-Message-Group-ID
are dispatched.This software is licensed under the MIT License. View the license