An open API service indexing awesome lists of open source software.

https://github.com/webman-tech/symfony-lock

symfony lock for webman
https://github.com/webman-tech/symfony-lock

lock webman

Last synced: 10 months ago
JSON representation

symfony lock for webman

Awesome Lists containing this project

README

          

# webman-tech/symfony-lock

[symfony/lock](https://packagist.org/packages/symfony/lock) for webman

## 介绍

在 webman 中简化使用业务锁功能

解决以下问题:

- 并发业务操作有时候需要锁来防止并发导致的数据插入或更新问题
- 单独使用 `symfony/lock` 时一般使用 `$factory->createLock('key')`,此时 key 是一个字符串,不利于后期维护或多处使用

## 安装

```bash
compoer require webman-tech/symfony-lock
```

## 使用

定义一个自己的 Locker 类,比如:`support\facade\Locker.php`,继承 `WebmanTech\SymfonyLock\Locker`

然后在类上方加入注释(用于代码提示),举例如下:

```php
acquire()) {
throw new \Exception('操作太频繁,请稍后再试');
}
try {
// 修改用户金额
} finally {
$lock->release();
}

return 'ok';
}
}
```

更多操作参考:[symfony/lock 文档](https://symfony.com/doc/current/components/lock.html)