网游避免事务与回滚
来源:互联网 发布:windows app store 编辑:程序博客网 时间:2024/06/06 07:21
网游避免事务与回滚
(金庆的专栏)
玩家的数据可能分散在不同进程中,
例如背包在物品管理进程,血量在战斗进程,公会积分在公会管理进程。
如果一个装备升级功能需要扣背包中物品,扣血,扣公会积分,然后增加装备属性,
需要跨多个进程更改数据,最终决定是否成功。
目前一般按事务处理,如果中间某个步骤失败,需要回滚整个操作。
实际上可以放宽条件,避免事务处理,不需要回滚。
装备升级前,客户端将预判条件是否满足,然后装备升级进程再次用本地数据判断条件,
然后依次扣物品,扣血,扣积分,所有扣除都成功后即可增加装备属性。
如果某个扣除失败,将直接返回失败结果,先前的扣除将作为损耗不再回滚。
对于玩家来说,装备升级将是一件有风险,不成功就会有损失的事,
玩家需要尽量保持当前状态以避免装备升级失败。
例如玩家需要在安全地点避免装备升级时受到攻击,
需要在公会申请预留积分(可能是公会频道发个通告)。
扣除物品的次序可能需要认真考虑,像公会积分不受控制容易变化的先扣,
扣血这种价值可以忽略的先扣,重要物品最后扣除以最大限度避免损失。
所有玩家可以承受的损失都不需要回滚。
(金庆的专栏)
玩家的数据可能分散在不同进程中,
例如背包在物品管理进程,血量在战斗进程,公会积分在公会管理进程。
如果一个装备升级功能需要扣背包中物品,扣血,扣公会积分,然后增加装备属性,
需要跨多个进程更改数据,最终决定是否成功。
目前一般按事务处理,如果中间某个步骤失败,需要回滚整个操作。
实际上可以放宽条件,避免事务处理,不需要回滚。
装备升级前,客户端将预判条件是否满足,然后装备升级进程再次用本地数据判断条件,
然后依次扣物品,扣血,扣积分,所有扣除都成功后即可增加装备属性。
如果某个扣除失败,将直接返回失败结果,先前的扣除将作为损耗不再回滚。
对于玩家来说,装备升级将是一件有风险,不成功就会有损失的事,
玩家需要尽量保持当前状态以避免装备升级失败。
例如玩家需要在安全地点避免装备升级时受到攻击,
需要在公会申请预留积分(可能是公会频道发个通告)。
扣除物品的次序可能需要认真考虑,像公会积分不受控制容易变化的先扣,
扣血这种价值可以忽略的先扣,重要物品最后扣除以最大限度避免损失。
所有玩家可以承受的损失都不需要回滚。
0 0
- 网游避免事务与回滚
- sqlserver事务与回滚
- sqlserver事务与回滚
- sqlserver事务与回滚
- 多线程与事务回滚
- 事务与锁定-回滚事务
- spring2.5与junit4事务回滚
- spring异常与事务回滚
- Postgresql 事务的提交与回滚
- Postgresql 事务的提交与回滚
- java事务提交与回滚
- 原生(DBUtils)事务与回滚
- 简单的Spring事务嵌套与事务回滚
- SqlServer事务回滚
- 事务无法回滚
- 事务回滚
- 事务回滚处理
- 事务回滚反思
- HTML5 Access-Control-Allow-Origin解决跨域问题
- 导弹拦截-动态规划
- 继承方式
- IOS引导界面
- WoSign正式成为FIDO联盟Sponsor级别成员单位
- 网游避免事务与回滚
- 注胶隔热型材加工过程中常见问题、解析及处理系列阐述
- SQL基础(八)--SELECT
- Jquery AJax请求
- 虚拟机检测技术攻防
- 平方剩余 (poj 1808)
- C语言中的键盘录入
- NDK SDK JDK ADT 下载地址汇总
- Python 将字符串每两个以空格分开