雪域 / magento2-lock
一个提供多服务器锁服务的 Magento 2 模块
v1.4.0
2020-11-24 16:08 UTC
Requires
- php: >=7
- magento/framework: ^100|^101|^102|^103
This package is auto-updated.
Last update: 2024-09-25 00:20:58 UTC
README
描述
一个提供多服务器锁服务的 Magento 2 模块。这允许开发者对共享资源应用互斥锁,以确保它们不会被同时访问。
先决条件
- PHP 7.0 或更高版本。
magento/framework
模块 100 或更高版本。- Composer (https://getcomposer.org.cn/download/).
安装
composer require snowio/magento2-lock
php bin/magento setup:upgrade
php bin/magento setup:di:compile
php bin/magento cache:flush
使用
锁服务可以通过依赖注入来访问。请参阅 依赖注入 部分,以获取有关如何使用依赖注入的更多信息。
public boolean LockService::acquireLock(string $name, int $timeout)
尝试获取锁 ####参数
$lockName
: 锁标识符/名称$timeout
: 锁超时时间。负超时表示无限超时。
####返回值 一个布尔值,指示是否成功获取锁。
public LockService::releaseLock($lockName)
释放锁
参数
$lockName
: 锁标识符/名称
示例
namespace 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); } } }
应用
- snowio/magento2-product-save-mutex : 使用此模块以确保产品保存 API 调用互斥。
- snowio/magento2-idempotent-api : 使用此模块以确定请求冲突,即具有相同
X-Message-Group-ID
的 2 个或更多请求被调度。
许可
此软件根据 MIT 许可证授权。 查看许可证