Home
Download
Document
Q&A
Video
Donate
Source Code
Code-Galaxy
Business
Swoole Tracker
Swoole Compiler
Login
Register
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
共享内存(table)支持手动上锁吗?有些使用场景需要。
### 问题描述 有共享内存(table)的某使用场景,流程如下: 1. 取出某条数据 2. 进行一定逻辑计算 3. 再进行更新插入 在进行第二步操作时,需要避免其他进程读取该行数据,请问这里可以手动给该行上锁吗?待第三步完成后再手动释放锁。 ### Swoole版本,PHP版本,以及操作系统版本信息 版本:any ### 相关代码 ```php $id="1"; $user=$tb->get($id); // 希望这里能加锁 if($user && $user['vip']){ $res=$tb->set($id,["points"=>100]); }else{ $res=$tb->set($id,["points"=>0]); } // 希望这里能释放锁 ``` ### 你期待的结果是什么?实际看到的错误信息又是什么? 是否有手动加锁、释放锁的功能或上述场景有其他什么好的解决方案?
发布于2月前 · 19 次浏览 · 来自
提问
灰鸦
### 问题描述 有共享内存(table)的某使用场景,流程如下: 1. 取出某条数据 2. 进行一定逻辑计算 3. 再进行更新插入 在进行第二步操作时,需要避免其他进程读取该行数据,请问这里可以手动给该行上锁吗?待第三步完成后再手动释放锁。 ### Swoole版本,PHP版本,以及操作系统版本信息 版本:any ### 相关代码 ```php $id="1"; $user=$tb->get($id); // 希望这里能加锁 if($user && $user['vip']){ $res=$tb->set($id,["points"=>100]); }else{ $res=$tb->set($id,["points"=>0]); } // 希望这里能释放锁 ``` ### 你期待的结果是什么?实际看到的错误信息又是什么? 是否有手动加锁、释放锁的功能或上述场景有其他什么好的解决方案?
赞
0
分享
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
评论
2023-01-17
Rango
使用 `Swoole\Lock`
赞
1
回复
微信公众号
热门内容
- 重启worker时希望读取到其它文件的配置变更
- Think-Swoole: 全面协程化你的 ThinkPHP 应用
- 协程Co::set设置hook_flage失效
- fatal error: 'pcre2.h' file not found
- 环境有http2,调用就报错
- 最新版的协程 Redis 客户端 已不建议使用,那Redis服务端以后还会存在吗?
- framework 404
- Swoole-Cli v5.0.2 增加 opcache/readline 扩展,强化 Cli-Server
- 用curl后,php代码处理的很快,但是返回的给前端的时间慢,有人知道原因吗
- Swoole-cli 5.0 Window10运行Hyperf命令行报错
暂无回复的问答
- CodeGalaxy K3s 轻量集群节点之间如何实现负载均衡
- 关于openssl CURL WARNING swSSL_connect: SSL_connect(fd=69) failed. Error: error:141A318A:SSL routines:tls_process_ske_dhe:dh key too small[1|394]
- 请问那个一键协程化的代码是放外面还是set里面
- 多个模型如何进行事务异常回退?
- websocket开启wss报错