大佬,buy.php 减库存失败后,生成静态文件的是哪行代码我看不出来

来源:8-9 提高数据处理速度-代码改造(二)

慕瓜9281148

2017-12-20

// 8 扣除商品剩余数量
   $left = $goods_model->changeLeftNumCached($goods_id, 0-$goods_num);
   $ok = false;
   if ($left >= 0) {
       $ok = $goods_model->changeLeftNum($goods_id, 0-$goods_num);
   } else {
       // 扣除商品库存失败
       $goods_model->changeStatusCached($goods_id, 0);
       $result = array('error_no' => '108', 'error_msg' => '商品剩余数量不足');
       show_result($result);
   }

public function changeStatusCached($id, $status) {
   $redis_obj = \common\Datasource::getRedis('instance1');
   $key = 'st_g_' . $id;
   return $redis_obj->set($key, $status);
}

这里我看只是扣减失败后将数据更新到了redis, 生成静态文件是怎么生成的?

写回答

1回答

一凡

2017-12-20


还真是少了一行生成文件的代码,放在buy.php的168行,也就是“扣除商品库存失败”,在 show_result 之前增加上生成这个js文件。

file_put_contents(ROOT_PATH . '/web/astatus/' . $active_id . '_' . $goods_id . '.js', '{"error_no":"202","error_msg":"\u6d3b\u52a8\u5546\u54c1\u5df2\u4e0b\u67b6\u6216\u8005\u5df2\u552e\u5b8c"}');

0
1
慕瓜9281148
非常感谢!
2017-12-21
共1条回复

PHP秒杀系统 高并发高性能的极致挑战

从万次到亿万次秒杀系统的性能优化 ,从单机到分布式的架构升级

614 学习 · 78 问题

查看课程