chenjiahao/seklock

分布式锁lock

v1.0.1 2020-02-05 07:14 UTC

This package is not auto-updated.

Last update: 2024-09-26 05:45:22 UTC


README

首先需要安装 https://github.com/s84662355/SEKLock_Server.git

这个工具是因为我觉得使用redis加锁太麻烦,性能太差,所以从2019年初就开始了这个工具的开发

laravel的使用方法

composer require chenjiahao/seklock

在app.php文件中添加 SEKLock\SEKLockServiceProvider::class 例如

'providers' => [
    SEKLock\SEKLockServiceProvider::class,


    /*
     * Laravel Framework Service Providers...
     */
    Illuminate\Auth\AuthServiceProvider::class,
    Illuminate\Broadcasting\BroadcastServiceProvider::class,
    Illuminate\Bus\BusServiceProvider::class,
    Illuminate\Cache\CacheServiceProvider::class,
    Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class,
    Illuminate\Cookie\CookieServiceProvider::class,
    Illuminate\Database\DatabaseServiceProvider::clas

php artisan vendor:publish --provider="SEKLock\SEKLockServiceProvider::class"

在sek_lock.php

修改相应的参数

例如secretkey参数是秘钥,类似于密码的存在 return [ 'ip' =>env('SEK_IP', '127.0.0.1') , 'port' => env('SEK_PORT',90), 'secretkey' => env('SEK_SECRETKEY',111111) ,

];

获取共享锁 $wait_time以毫秒为单位 app('seklock')->getShareLock($lock_name,$wait_time);

获取独占锁 app('seklock')->getUpdateLock($lock_name,$wait_time)

解锁 app('seklock')->unlock($lock_name);