现实库存处理记录

现今我们系统库存以sku为单位,每个sku都有对应库存。

库存信息我们会记录在一个数据库表中,为了性能每次上线我们会将这个数据库表中的库存放入内存中。

需要保证多个用户同时操作内存库存时的线程安全性,这边我们是通过调用tair的incr和desc命令保证库存增减是串形的。

但是有一种可能:

内存库存为1件,2个用户同时购买,第一个用户减完后库存为0,第二个用户为-1。这时如果不做处理就会产生超卖,我们这边会判断如果用户在操作库存时,发现减后的库存量是-1这时我们会加回去,并返回「库存不足」给用户。

最坏的可能性如果是tair挂了,导致所有内存库存不可用,这时我们会用一个库存同步job为同步库存。

时间: 2024-10-04 10:09:49

现实库存处理记录的相关文章

openerp 6.0.2库存业务

一.复式库存(Double-Entry Stock Management)和库存移动(Stock Move) OpenERP的库存管理采取了独特的复式库存(Double-Entry Stock Management).什么是复式库存?就是每一笔库存变动,同时记录库存减少和库存增加.例如卖了10辆自行车给客户,OpenERP会在你的库位(Location,这个概念后面再说)减去10辆自行车,再在客户库位(Customers Location)增加10辆自行车.因此,任何时候,OpenERP的所有库

[原创]商城系统下单库存管控系列杂记(一)(并发安全和性能基础认识)

商城系统下单库存管控系列杂记(一)(并发安全和性能基础认识) 前言 参与过几个中小型商城系统的开发,随着时间的增长,以及对系统的深入研究和测试,发现确实有很多值得推敲和商榷的地方(总有很多重要细节存在缺陷).基于商城系统,无论规模大小,或者本身是否分布架构,个人觉得最核心的一环就是下单模块,而这里面更相关和棘手的一些设计和问题,大多时候都涉及库存系统.想想之前跟某人的交流,他一句"库存管控做得好,系统设计就成功了一半",自己颇有认同.围绕这个点,结合目前经验和朋友间的交流(包括近来参阅

html笔记

一.HTML是什么 HTML是一种超文本标记语言, 通过它可以建立网页(文字.图片.音乐.视频.链接.程序), 人们可以通过通过浏览器进行访问. 二.HTML历史 HTML 2.0--1995年11月,RFC 1866发布 HTML 3.2--1997年1月14日,W3C发布推荐标准 HTML 4.0--1997年12月18日,W3C发布推荐标准 HTML 4.01--1999年12月24日,W3C发布推荐标准 HTML 5--2014年10月28日,W3C发布推荐标准 三.Html.CSS.j

运维学习笔记虚拟用户邮件服务

在DNS为邮件服务器做好域名解析后 注意:在做该实验时有些设备应关闭selinux 就可以利用MYSQL和POSTFIX来搭建数据库所记录的虚拟用户来使用邮件服务器进行收发邮件了 首先在MYSQL中建立email库存放记录虚拟用户信息的表emailuser usernamepassworddomainmaildir [email protected]12345678redhat.com/redhat.com/fu/ 在MYSQL中新建用户并使得该用户只可访问email库 GRANT SELECT

电商系统架构——系统鸟瞰图

在看到图(一)这样的图,我们是否有一种探究系统的冲动?这样一个花花绿绿的界面,背后隐藏着什么样的奥秘!用户输入某个域名的时候,比如www.taobao.com的时候,页面是如何展示的,用户在搜索框搜宝贝的时候,系统又是如何处理的,用户在参加秒杀活动的时候,系统又是如何处理的.经过两年多的互联网从业经验,以及自己的思考,在这里我就抛砖引玉对电商系统架构进行探究,探究系统是如何设计的,以及设计这个系统的各种权衡. 图(一) 隐藏在花花绿绿的界面之后,是一个庞大复杂的系统,图(二)是这个系统的鸟瞰图.

Java 分页工具

[背景] 最近学习Spring MVC,涉及到分页显示的问题,准备自己整理一个分页工具.由于以前使用Strus框架使用 NewPandaKing 的一个PageBean和Page方法,耦合性比较高,于是优化一下. [优点] 耦合低,使用方便. [缺点] 由于耦合低,不查数据库,所以每次使用List的sublist方法,效率降低. 代码如下: 分页工具类:PageUtil.java /** * Java 分页工具类 */ package com.util; import java.util.Has

Web开发基本准则-55实录-缓存策略

郑昀 创建于2013年2月 郑昀 最后更新于2013年10月26日 提纲: Web访问安全 缓存策略 存储介质连接池 业务降级 并发请求的处理 关键词: 会话串号,Cache-Control头域,缓存穿透,缓存集体失效,缓存重建,缓存雪崩,缓存永不过期,缓存计数器, 二,缓存策略 这里的“缓存”概念不只限于服务器端的“缓存”. 2.1.防会话串号 如果你收到一个投诉,说访问“我的个人中心”页面时进入其他人的帐号,至少订单列表上显示的不是自己的.此时,技术支持人员可以提三个问题,第一,对页面上显示

Message Queue与WebService比较

最近在使用IBM Websphere Message Queue,与WebService相比,同样是跨平台的通信方式,那么各种有什么优势呢? Message Queue属于比较重量级的应用,在规范化的企业流程中用的比较多.如果企业有很多部门,部门都有自己的系统,那么不同的系统之间的集成通信,Message Queue是很好的选择.MQ一般都做为企业级IT应用的中间件存在,有很多企业是作为标准IT基础结构存在的.在市面上常见的MQ中间件有IBM websphere message queue se

Java面试题总结(一)

折磨人的小妖精---main方法 真的有公司会这么变态,用main方法来折磨你吗?你得承认,的确有比较low的公司会这么做.本文对这些与main方法相关的问题做一个小结. 1.下列程序运行结果是 public class Hello { public static void main(String s) { System.out.println("Hello"); } } A.编译错误 B.运行输出 "Hello" C.编译无错,但运行时指示没有定义构造方法 D.编