lostmilky / locallock
一个信号量实现的高效单机锁
v1.3.0
2020-09-18 01:48 UTC
Requires
- php: ^7.1.3
This package is auto-updated.
Last update: 2025-05-18 12:35:41 UTC
README
特点
-
一个基于信号量实现的单机锁,由于是信号量是内核控制,具有很高的效率。
-
锁被占用后,对方释放,这边进程自动唤起,不需要特意去实现冲突后的逻辑。
运行环境
- Linux
- PHP 7.1.3+
laravel 安装
composer require lostmilky/locallock
laravel 需要修改 app/config/app.php
providers 里增加 Lostmilky\Locallock\LocalLockProvider::class
Demo
<?php
use Lostmilky\Locallock\LocalLock;
try{
$lock = new LocalLock();
$key = 'a'; // 这里只能是单个的 ASCII 字符串
$lock->lock($key); // 加锁
doSomeThing();
$lock->unlock($key); // 释放锁
} catch (\Exception $e) {
$lock->unlock($key); // 出异常,释放锁
}
LICENSE
MIT