v1.2.0 2023-11-02 09:29 UTC

This package is auto-updated.

Last update: 2024-09-23 15:51:13 UTC


README

一个简单的锁库... 它基于文件锁(这很棒)。

Latest Stable Version License

为什么你需要它

想象一下你有两个任务你不希望它们重叠(例如,它们修改相同的数据)。使用这个库将给你带来平静。

请注意

该库使用文件锁机制以确保其正确运行。这意味着它只能用于共享同一文件系统的应用程序/实例/进程。一个服务器的网站就是这样做的。

通过 Composer 安装

composer require ivopetkov/lock

使用方法

使用以下两个方法(acquire() 和 release())将确保没有两个应用程序/实例/进程在它们之间执行代码。

<?php
require 'vendor/autoload.php';
use IvoPetkov\Lock;

Lock::acquire('lock1'); // Acquires a lock and pauses other applications/instances/processes until the lock is released.
// Do something awesome
Lock::release('lock1'); // Releases the acquired lock.

文档

完整的 文档 可在此存储库中找到。

配置

获取锁的默认超时时间为 1.5 秒。您可以通过调用以下方法来修改它

Lock::setDefaultLockTimeout(2.5);

库需要的临时锁文件存储在您的操作系统临时目录中。您可以通过调用以下方法来修改它

Lock::setLocksDir('/some/other/temp/dir/');

如果多个应用程序使用此库,您可以调用以下方法来前缀提供的键。这样,不同的应用程序可以使用相同的键而不互相干扰。

Lock::setKeyPrefix('app1');

许可协议

本项目采用 MIT 许可协议。有关更多信息,请参阅 许可文件

贡献

请随时提出新问题并为项目做出贡献。让我们让这个项目变得出色,并以积极的方式进行。

作者

该库由 Ivo Petkov (ivopetkov.com) 创建和维护。