hormone / memory-lock
php memory lock
v1.0
2018-12-04 10:42 UTC
Requires
- php: >=7.0.0
Requires (Dev)
- phpunit/phpunit: ^5.7
This package is not auto-updated.
Last update: 2024-09-19 12:47:32 UTC
README
php memory-lock
Install
- composer command
composer require hormone/memory-lock
Document
use redis lock
<?php require 'vendor/autoload.php'; try { $redis = new \Redis(); $redis->connect('127.0.0.1', 6379); $config = [ // 适配器类型 //'adapter' => \Hormone\Lock\Config\LockConfig::REDIS_ADAPTER, // 内存锁获取时重试等待时间,单位为微秒。默认等待10ms,系统压力比较大,可以适当增大该时间值 //'lockTimewait' => 10000, // 设置重试次数,以保证不会到达PHP超时时间 //'lockRetryTimes' => 1000, // 内存锁过期时间,需要大于PHP脚本默认的超时时间30s //'lockTimeout' => 35, //'lockPrefix' => '_hm_lock_', ]; \Hormone\Lock\LockManager::init($redis, $config); $key = 'lockKey1'; \Hormone\Lock\LockManager::acquire($key); // do something var_dump("code"); sleep(1); } catch (\Exception $e) { // todo Exception } finally { \Hormone\Lock\LockManager::release($key); }
use memcached lock
<?php require 'vendor/autoload.php'; try { $memcached = new \Memcached([ 'servers' => array('127.0.0.1:11211'), ]); $config = [ // 适配器类型 'adapter' => \Hormone\Lock\Config\LockConfig::MEMCACHE_ADAPTER, // 内存锁获取时重试等待时间,单位为微秒。默认等待10ms,系统压力比较大,可以适当增大该时间值 //'lockTimewait' => 10000, // 设置重试次数,以保证不会到达PHP超时时间 //'lockRetryTimes' => 1000, // 内存锁过期时间,需要大于PHP脚本默认的超时时间30s //'lockTimeout' => 35, //'lockPrefix' => '_hm_lock_', ]; \Hormone\Lock\LockManager::init($memcached, $config); $key = 'lockKey2'; \Hormone\Lock\LockManager::acquire($key); // do something var_dump("code"); sleep(1); } catch (\Exception $e) { // todo Exception } finally { \Hormone\Lock\LockManager::release($key); }
Unit testing
./vendor/bin/phpunit tests or composer test
LICENSE
The Component is open-sourced software licensed under the Apache license.