Dan*_*itt 2 coldfusion transactions e-commerce coldfusion-9
我正在Coldfusion的电子商务网站上工作.库存量有限.当一个人结账时,我需要检查当时的库存数据库表并确保产品仍然可用.我担心以下场景发生:
人员1提交他们的购物车只剩1个产品.代码开始收取信用卡费用,存储他们的登录信息.
人员2在同一产品的人1后面提交他们的购物车.Person 1的代码没有达到将产品的库存值减少到0的程度.因此代码允许Person 2购买产品.
防止这种情况的最佳方法是什么?我想我需要在代码中放置一个cftransaction标签来执行所有计费,添加登录信息,最后递减值.是否有一个简单的cftransaction标记,锁定数据库,直到它完成为止?我读过关于隔离级别但我仍然感到困惑.我是否需要在该cftransaction上设置一个特殊的隔离级别?
你需要小心你做了多少锁定,因为你最终会有超时等待锁定释放的交易 - 以及不满意的客户!
您还有另一个需要注意的方案:用户1和用户2将相同的项目放在他们的购物车中.用户1完成结账,一直到.用户2接到电话,然后在10分钟后回来完成.您的流程必须足够智能,以便在购买完成之前重新验证购物车商品.
我的建议是实施"软购买"流程,一旦一个人开始结账,这些项目就会被其他人标记为"不可用".如果购买完成,则转换为"硬买",库存减少.如果用户未完成购买,则发布"软购买".
您可以使用数据库表或软购买交易表中的标记来指示软购买,具体取决于您的库存数据的存储方式.
| 归档时间: |
|
| 查看次数: |
1074 次 |
| 最近记录: |