雪域/magento2-lock

一个提供多服务器锁服务的 Magento 2 模块

安装次数: 199,731

依赖项: 4

建议者: 0

安全: 0

星星: 6

关注者: 7

分支: 3

公开问题: 1

类型:magento2-module

v1.4.0 2020-11-24 16:08 UTC

This package is auto-updated.

Last update: 2024-09-25 00:20:58 UTC


README

描述

一个提供多服务器锁服务的 Magento 2 模块。这允许开发者对共享资源应用互斥锁,以确保它们不会被同时访问。

先决条件

安装

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);
        }
        
    }
}

应用

许可

此软件根据 MIT 许可证授权。 查看许可证