此包最新版本(v1.0.2)没有提供许可证信息。

简单的PHP锁定函数系统。

v1.0.2 2022-02-02 21:12 UTC

This package is auto-updated.

Last update: 2024-09-08 17:36:18 UTC


README

这是一个简单的库,用于在您的PHP应用程序中处理和清除锁定。使用它无需任何依赖项,所有操作都在原生PHP中完成。

想法

在您的PHP应用程序中实现简单高效锁定管理。

要使用它,只需启动一个锁定(您可以在同一时间使用许多不同的锁定),等待解锁,处理任何竞争任务,然后让锁定过期或手动解锁。

如果让锁定自然过期,它将通过垃圾收集器组件自动清除。

📦 安装

最好使用Composer进行安装,您也可以在PackagistGitHub上找到此包。

安装命令:

$ composer require baraja-core/lock

如何使用

简单请求一个静态的Lock服务,您可以执行以下操作

// start no-name transaction
Lock::startTransaction();

if (Lock::isTransactionRunning()) {
    // Transaction is running...
}

// Stop no-name transaction
Lock::stopTransaction();

默认情况下,您应该始终在操作结束时使用stopTransaction()方法停止事务。如果您没有终止事务,它将在保护限制到期时自动终止。

保护限制不能被禁用,并在停止事务失败的情况下使用,以避免完全破坏应用程序。应用程序总能从损坏的锁定中摆脱出来。

命名事务和设置自己的限制

在竞争进程的情况下,我们首先需要等待之前的交易完成。

为此,最好使用wait()方法,它将自动等待之前的交易完成。

等待到空闲时间槽后,我们在当前进程中创建自己的交易,稍后手动终止。

Lock::wait('order-number');

// start transaction "order-number" for 5 seconds
Lock::startTransaction('order-number', 5000);

// run something special...

// stop transaction
Lock::stopTransaction('order-number');

如果事务没有使用stopTransaction()方法手动停止,它将在保护间隔到期后自动终止。

如果由于某些原因(例如,您没有删除事务文件的权利)在系统级别直接停止事务失败,则wait()方法将在最迟30秒后(可以设置间隔)取消请求,即使锁定仍然存在。

这确保了应用程序永远不会完全卡住。

📄 许可证

baraja-core/lock根据MIT许可证授权。有关详细信息,请参阅LICENSE文件。