talentrydev/locking

此包已被废弃,不再维护。没有建议的替代包。

2.0.2 2021-07-01 15:19 UTC

This package is auto-updated.

Last update: 2024-06-29 05:34:23 UTC


README

此模块提供了一个简单的接口来获取互斥锁。目前,锁定是通过MySQL函数(GET_LOCK 和 RELEASE_LOCK)实现的,但客户端不应依赖此实现,因为这是一个可能会无通知而更改的实现细节。

如何使用

  • 使用工厂创建 Lock 实例
    $connection = \Doctrine\DBAL\DriverManager::getConnection(['url' => $dbUrl]); 
    $factory = new \Talentry\Locking\Factory\LockFactory($connection);
    $lock = $factory->generate();
    
  • 调用 Lock::acquire,并提供锁的名称。
  • 如果方法返回 true,则表示已获取锁,否则表示未能获取锁(可能是由于另一个客户端已经持有锁)。
  • 执行一些有用的工作。
  • 调用 Lock::release(再次提供锁的名称),以释放锁,使其可供其他客户端使用。