lianran111/laravel-lock 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

lianran111/laravel-lock

Composer 安装命令:

composer require lianran111/laravel-lock

包简介

高性能, 分布式, 并发抢占锁, 队列锁

README 文档

README

1.PHP >= 7
2.composer
3.redis(必须支持lua)
4.predis

composer 安装

移步 composer中文网.

redis 安装

redis中文网

predis 安装

composer require predis/predis

lock 安装

第一步, 安装alravel-lock
composer require lianran111/laravel-lock
第二步, 生成配置文件
php artisan vendor:publish --provider="Lock\LockServiceProvider"

抢占锁

lock(callable $callback, string $lock_val)

多进程并发时, 其中某一个进程得到锁后, 其他进程将被拒绝

$callback  
            回调函数, 可返回值
$lock_val
            锁定值

多参数抢占锁

lock(callable $callback, array $lock_vals)

多进程并发时, 其中某一个进程得到锁后, 其他进程将被拒绝

$callback  
            回调函数, 可返回值
$lock_vals
            锁定值(数组)

队列锁

queueLock($closure, $lock_val, $max_queue_process = 100)

多进程并发时, 其中某一个进程得到锁后, 其他进程将等待解锁(配置最大等待进程后, 超过等待数量后进程将被拒绝)

$callback  
                回调函数, 可返回值
$lock_val
                锁定值
$max_queue_process        
                队列最大等待进程        

多参数队列锁

queueLock($closure, $lock_vals, $max_queue_process = 100)

多进程并发时, 其中某一个进程得到锁后, 其他进程将等待解锁(配置最大等待进程后, 超过等待数量后进程将被拒绝)

$callback  
                回调函数, 可返回值
$lock_vals
                锁定值(数组)
$max_queue_process        
                队列最大等待进程       

使用

//静态调用
$lock_val = 'user:pay:1';
Lock::lock(function($redis){
   echo 'hello world!';
}, $lock_val);
        
//实例化调用
$lock = new Lock();
$lock_val = 'user:pay:1';
$lock->lock(function($redis){
    echo 'hello world!';
}, $lock_val);

//多参数锁
$lock = new Lock();
$lock_val[] = 'user:pay:1';
$lock_val[] = 'user:pay:2';
$lock->lock(function($redis){
    echo 'hello world!';
}, $lock_val);

限流

isActionAllowed($key, $period, $max_count)

$key        限制key
$period     限制时间(秒)
$max_count  限制时间内最大数量

config配置

 /*
    |--------------------------------------------------------------------------
    | lock配置文件
    |--------------------------------------------------------------------------
    |
    |drive 锁驱动(默认redis)
    |
    |redis redis驱动配置
    |   host 地址
    |   port 端口
    |
    |params 参数配置
    |   max_queue_process  进程池最大进程
    |   expiration         锁值过期时间
    |
    */
'drive' =>  'redis',

'redis' =>  [
    'host'                  =>  '127.0.0.1',
    'port'                  =>  6379,
    'read_write_timeout'    =>  0,
    'persistent'            =>  true,
],

'params' => [
    'max_queue_process' =>  100,
    'expiration'        =>  5
]

laravel-lock

lianran111/laravel-lock 适用场景与选型建议

lianran111/laravel-lock 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 310 次下载、GitHub Stars 达 0, 最近一次更新时间为 2021 年 07 月 08 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「lock」 「并发锁」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 lianran111/laravel-lock 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 lianran111/laravel-lock 我们能提供哪些服务?
定制开发 / 二次开发

基于 lianran111/laravel-lock 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 310
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 9
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2021-07-08