供应链业务MQ应用场景经验总结

2018-12-16
阅读 2 分钟
2.7k
写在前面:做供应链业务一年有余了,这一年里MQ帮我们解决了很多问题,在此做一些经验总结;另外,各个公司消息中间件提供的功能大同小异,最基础的推消息、下游异常重试机制应该是都具备的,本文所述也是建立在这样的能力基础上的~

正则匹配所有括号中的内容&PHP实现

2018-06-21
阅读 1 分钟
5.1k
正则表达式:(?<=【)[^】]+注:以匹配中文括号中内容为例,如果匹配非中文括号,则需要在括号前增加转义符 PHP实现示例: {代码...} 执行结果: {代码...} 解析:1、(?<=【)第一个表达式是一个『非获取匹配』,即匹配括号,但并不获取括号; 2、[^】]+第二个表达式中[]匹配单个字符,^】代表除了】的字符,+是限定...

PHP三种数组合并方式区别示例

2018-05-13
阅读 2 分钟
9.7k
目前工作中接触到的PHP数组合并方式主要有三种:1、+操作符2、array_merge()3、array_merge_recursive()

PHP实现Redis单据锁,防止并发重复写入

2018-04-09
阅读 6 分钟
5.9k
在整个供应链系统中,会有很多种单据(采购单、入库单、到货单、运单等等),在涉及写单据数据的接口时(增删改操作),即使前端做了相关限制,还是有可能因为网络或异常操作产生并发重复调用的情况,导致对相同单据做相同的处理;

MySQL InnoDB锁机制全面解析分享

2018-04-02
阅读 5 分钟
32.7k
写在前面:在设计新零售供应链wms(仓库管理系统)库存模块时,为了防止并发情况对库存的影响,查阅了一些资料,对InnoDB锁机制有了更全面的了解,在此做出分享,如有疏漏望不吝指正,愿共同进步!(此篇为1.0版本,后续随理解深入,会逐步迭代完善~)

通过实际业务场景理解后端接口的幂等性

2018-03-30
阅读 1 分钟
5.3k
非幂等场景:服务A将单据A信息通过RPC远程过程调用传给下游服务B接口(非幂等接口)用于生成关联单据B,服务B接口会校验是否已经接收过单据A,如果已接收过,会报错『重复的单据』,如果未接收过,则生产关联单据B并写库,将结果返回服务A,服务A收到结果后修改此单据状态,将结果返回客户端。简化流程图如下所示:

Mysql 【order by 不唯一字段】与【limit】混用分析

2018-03-23
阅读 1 分钟
4.1k
原因解析(取自Mysql官方文档):上面官方文档里面有提到如果你将Limit row_count与order by混用,mysql会找到排序的row_count行后立马返回,而不是排序整个查询结果再返回。如果是通过索引排序,会非常快;如果是文件排序,所有匹配查询的行(不带Limit的)都会被选中,被选中的大多数或者全部会被排序,直到limit要求...

Linux expect指令实现ssh自动登录脚本

2018-03-21
阅读 1 分钟
9.2k
写在前面:目前在公司是一人一台虚拟机,大多数工作都要在虚拟机上完成,为此每天要执行很多次【ssh xxx@xxxxxx】指令登录虚拟机;有很多方式解决这个问题,如使用xshell、secureCRT等工具记录常用的连接,我就写了一个简单的脚本实现一键登录~

Git撤销修改场景及对应指令(checkout、reset、revert)详解

2018-03-19
阅读 3 分钟
4.6k
场景一:撤销工作区的修改(未执行git add) 指令:git checkout 【目录或文件名】 实例: 1、修改了test.txt文档,git status 会出现如下提示: 2、git checkout test.txt,无提示 3、git status,显示干净的工作区 场景二:撤销暂存区的修改(已执行git add,但未执行git commit) 指令:git reset 【HEAD或某一版本号...

RD基本功——Shell、Bash与Linux环境变量配置

2018-03-19
阅读 1 分钟
4k
写在前面:在使用Linux的时候,有些常用但非常繁琐的指令如:cd 巴拉巴拉一个很长的路径(工作目录) ,我就会在配置文件中配置这条指令的别名,能有效地提高工作效率;此文就大概介绍下Bash、Shell与相关的环境变量配置文件~

RD基本功——Vi基础与最常用指令

2018-03-16
阅读 2 分钟
1.9k
写在前面:作为常年与服务器、Linux打交道的后端开发RD,基本的vi操作是一定要运用非常熟练的;本篇文章就记录了一些日常工作中最常用的的指令,希望能和大家共同学习共同进步~