简单到极致/laravel-lock

此包最新版本(0.2.11)没有提供许可信息。

Laravel 对 symfony/lock 的集成。

0.2.11 2024-03-17 21:17 UTC

This package is auto-updated.

Last update: 2024-09-17 22:24:35 UTC


README

Laravel 对 symfony/lock 的集成。

安装

composer require simple-as-fuck/laravel-lock

配置

将其添加到 .env_example 中,并在服务器上配置环境。

LOCK_STORE=semaphore

支持

如果 composer.json 中列出的任何 PHP 平台要求以安全支持结束,请将包版本视为不受支持,除非是最后一个版本。

支持的 PHP 版本.

支持的 symfony lock 存储只支持本地阻塞锁,因为它非常有效。

  • semaphore SemaphoreStore 建议用于简单的生产环境,没有应用服务器复制(锁存储在本地 RAM 中)

  • flock FlockStore 建议用于本地开发,(锁存储在本地文件系统中,因此应该在任何地方都适用)

  • pgsql PostgreSqlStore 建议用于具有应用服务器复制的的大型生产环境(锁由 PostgreSQL 数据库远程存储),你可以使用特殊数据库来存储锁,通过设置 Laravel 数据库连接名称 LOCK_PGSQL_STORE_CONNECTION=some_postgers_connection_name,默认使用默认数据库连接

用法

/** @var \SimpleAsFuck\LaravelLock\Service\LockManager $lockManager */
$lockManager = app()->make(\SimpleAsFuck\LaravelLock\Service\LockManager::class);

$lock = $lockManager->acquire('some_lock_key');
try {
    //happy run some critical code synchronously
} finally {
    $lock->release();
}