mmeyer2k / semlock
信号量 + 封闭
1.0.1
2022-05-25 00:05 UTC
Requires
- php: ^7.0|^8.0
- ext-sysvsem: ^7.0|^8.0
This package is auto-updated.
Last update: 2024-09-25 05:10:46 UTC
README
一种干净的方式来封装信号量,以执行代码的独占执行。Semlock 还允许使用描述性字符串而不是整数来命名信号量。
在这里阅读我关于这个工具的博客文章
https://mmeyer2k.github.io/posts/php-exclusive-execution-closure-semaphore
安装
composer require mmeyer2k/semlock
使用
基本用法
\mmeyer2k\SemLock::synchronize('some_key', function () { $x = get_number_from_database(); $x++; sleep(5); save_number_to_database($x); });
处理返回值
semlock
库将闭包的返回值传递回调用上下文。
$returned = \mmeyer2k\SemLock::synchronize('some_key', function () { return 'something'; }); # $returned === 'something'