ecshop 秒杀 并发时库存会被减到小于0的解决方案

1 篇文章 0 订阅
1 篇文章 0 订阅

更新库存后,再进行库存检查,如果库存为负数,则执行事务的回滚。

		begin();//开始一个事物处理开始
				
		 $sql = "UPDATE ".$GLOBALS['a']->table('seconds_kill')." 
    			SET kill_stock = kill_stock - 1 
    			WHERE sk_id='".$sk_id."' LIMIT 1" ;
    	$GLOBALS['db']->query($sql);
    	
    	$sql = "SELECT kill_stock ".
    			" FROM ".$GLOBALS['a']->table('seconds_kill').
    			" WHERE sk_id='".$sk_id."'";
    	$kucun = $GLOBALS['db']->getOne($sql);
    		
    	if($kucun<0)
		{
			rollback();
			show_message('很抱歉,您购买的商品库存不足! ', '返回', '', 'error');
			die();
		}else{
			
			commit();
		}

//开始
function begin()
{
    $GLOBALS['db'] -> query("set autocommit=0");//设置自动提交
    $GLOBALS['db'] -> query("begin");//事务开始
}
//提交
function commit()
{
    $GLOBALS['db'] -> query("commit");//提交
    $GLOBALS['db'] -> query("set autocommit=1");
}
//回滚
function rollback()
{
    $GLOBALS['db'] -> query("rollback");//回滚所做的数据库更改
    $GLOBALS['db'] -> query("set autocommit=1");
}




  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
前言 3 一、商圈和地区进行关联 4 二、其他页面显示购买记录的函数 5 三、多货币解决方案 6 四、仿淘宝商品详细页实现尺码颜色关联显示库存 12 五、仿淘宝商品详细页加入购物车效果 14 六、ecshop加入购物车效果(各个页面) 22 七、商品列表页面“喜欢“ 功能实现 29 八、商品列表也显示获赠消费积分 32 九、分析 ecshop 里的$GLOBALS 37 十、解决 选择属性 直接就是属性价格不需要在原价基础上加价 38 十一、商品详细页下载商品介绍相关图片 39 十二、实现后台二次开发后功能模块仍然可以分配权限 41 十三、ecshop调用bbs数据 42 十四、整理了一个 获取用户等级的函数 43 十五、商品页显示具体属性排序 44 十六、解决ecshop新建页面分页问题 49 十七、刚修改的伪静态分类URL 52 十八、ecshop批发销售 66 十九、网银支付直通插件 实现方法 69 二十、商品列表页多图切换的实现 75 二十一、完善论坛发布的qq登录插件 77 二十二、倒计代码 78 二十三、关于ecshop回调函数应用 83 二十四、商品内容页加订单留言功能分析 84 二十五、有关商品详细页是常规显示还是显示宣传页的实现方法 85 二十六、后台添加搜索功能讲解 87 二十七、分享ec搜索出现相关商品的效果滑动效果(模仿百度) 88 二十八、修改注册发送邮件(更新) 94 二十九、新增加一调用编辑器函数 97 三十、简单实现 各个页面都可显示友情链接 97 三十一、Ecshop系统框架分析 99 三十二、二次开发技术共享 后台邮件群发共享 100 三十三、ecshop内页调用友情链接 100 三十四、项目要求在后台商品分类添加图片的功能。 102 三十五、分类按照拼音第一字母排序显示实现 102 三十六、获取分类的一级分类和二级分类 106 三十七、如何调用解决列表的购买数量 107 三十八、详情页调评论次数 108 三十九、关于购买数量 订单数量 109 四十、Ecshop ajax应用讨论 109 四十一、调用当前分类或当前分类的下级分类函数 115 四十二、在商品列表显示购买记录 118 四十三、ajax更新购物车数量 118 四十四、PHP导出excle数据 123 四十五、页面多倒计显示最新修改 125 四十六、关于lbi文件控制原理分析 129 四十七、页面浏览历史图片调用分析 130
### 回答1: 针对ECShop系统的登陆功能进行高并发性能测试,可以按照以下步骤进行: 1. 准备测试环境:搭建一台性能测试主机和多台被测服务器,保证测试主机和被测服务器之间的网络连接畅通。 2. 配置测试场景:使用LoadRunner工具创建测试场景,设置虚拟用户数量、登录脚本、登录数据等,并进行参数化处理,确保每个虚拟用户的登录数据都是唯一的。 3. 进行性能测试:在测试环境中运行测试场景,模拟多个用户同进行登录操作,观察系统的响应间、吞吐量、并发数等指标,以确定系统的性能瓶颈和极限。 4. 分析测试结果:根据LoadRunner生成的测试报告,分析系统的性能数据和趋势,找出系统的性能瓶颈和优化方案。 5. 优化系统性能:根据测试结果和分析报告,对系统进行优化,如增加服务器数量、优化数据库配置、改进代码性能等,以提升系统的性能和稳定性。 在进行高并发性能测试,需要注意以下几点: 1. 确保测试场景设置合理,模拟真实用户的操作流程和数据访问方式。 2. 控制虚拟用户数量,避免测试过程中对系统造成过大的负荷。 3. 监控被测服务器的资源使用情况,如CPU、内存、磁盘I/O等,及发现系统瓶颈。 4. 对测试过程进行记录和分析,及发现和解决测试中出现的问题。 5. 根据测试结果和分析报告,制定合理的性能优化方案。 ### 回答2: ECShop是一款常用的电子商务系统,为了确保系统在高并发条件下具备良好的性能,可以使用性能测试工具如LoadRunner对其登录功能进行高并发性能测试。 首先,我们需要配置LoadRunner环境,包括安装LoadRunner软件并设置服务器相关参数。 然后,我们需要创建并录制登录功能的脚本。在LoadRunner中,可以使用脚本录制器录制一系列与登录相关的操作,例如输入用户名和密码、点击登录按钮等。录制过程中,系统自动生成脚本代码。 接下来,我们需要配置并运行虚拟用户(Vuser)脚本。在LoadRunner中,可以设置并发用户数量、用户行为模式和持续间等参数。我们可以通过增加并发用户数量来模拟高并发场景,以验证系统在压力下的性能表现。 在测试执行过程中,LoadRunner对系统进行模拟性能压力,并收集相关指标,例如响应间、吞吐量、错误率等。测试结束后,我们可以通过这些指标来评估系统的性能表现。 最后,我们可以根据测试结果进行性能优化。如果测试显示系统响应间过长或吞吐量低下,我们可以通过优化系统架构、增加服务器资源或优化数据库查询等方法来提升系统性能。 综上所述,通过使用性能测试工具如LoadRunner对ECShop系统的登录功能进行高并发性能测试,可以帮助我们发现系统存在的性能问题,并提供优化方案,以确保系统在高并发条件下具备出色的性能。 ### 回答3: ECShop系统是一种流行的开源电子商务平台,为了测试其登陆功能在高并发情况下的性能,可以使用性能测试工具LoadRunner。LoadRunner是一款功能强大的性能测试工具,使用它可以模拟大量用户同对系统进行操作,从而评估系统在高负载情况下的性能指标。 在进行高并发性能测试之前,首先需要对测试场景进行规划。针对登陆功能的测试,可以模拟多个用户同尝试登陆系统,并在登陆后进行相关操作,例如浏览商品、下订单等。同,可以设置一定的持续间或者事务数,以模拟真实的用户行为和负载。 其次,需要配置LoadRunner的虚拟用户脚本。可以通过录制或手动编写脚本,模拟用户的登陆操作,包括输入用户名和密码、点击登陆按钮等步骤。可以设置不同的用户名和密码组合,以模拟多个用户同登陆系统。 然后,进行性能测试的参数配置。可以设置虚拟用户数量、测试持续间、负载模型等。对于高并发性能测试来说,虚拟用户数量应该设置为较大数目,以模拟真实环境下的高并发访问。测试持续间也应该足够长,以确保系统在高负载下的稳定性。 最后,执行性能测试并进行结果分析。通过模拟多个用户同登陆系统,可以评估系统在高并发情况下的性能表现,包括登陆响应间、吞吐量等性能指标。可以通过LoadRunner提供的分析工具对测试结果进行统计和图表展示,以便更好地理解系统的性能。 综上所述,通过使用LoadRunner进行高并发性能测试,可以全面评估ECShop系统的登陆功能在高负载下的性能指标,并为系统性能的优化提供有价值的参考。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值