[发明专利]一种物流箱码的通用接收订阅派发方法及系统在审
申请号: | 201911229648.5 | 申请日: | 2019-12-04 |
公开(公告)号: | CN111161437A | 公开(公告)日: | 2020-05-15 |
发明(设计)人: | 张彬;来彬彬;顾龙成;胡仁超;王根村 | 申请(专利权)人: | 江苏苏宁物流有限公司 |
主分类号: | G07B17/00 | 分类号: | G07B17/00;G06F16/23;G06F16/25;G06Q10/08 |
代理公司: | 南京理工大学专利中心 32203 | 代理人: | 马鲁晋;陈鹏 |
地址: | 210039 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 物流 通用 接收 订阅 派发 方法 系统 | ||
1.一种物流箱码的通用接收订阅派发方法,其特征在于,采用通用箱码数据结构存储各箱码作业状态数据,完成箱码接收、箱码订阅和箱码下发,其中
箱码接收:采用基于无锁队列的算法削峰,使队列中的箱码信息插入数据库;
箱码订阅:利用groovy表达式,将箱码的属性作为维度实现箱码的订阅;
箱码下发:采用基于无锁队列的算法削峰并使队列中的箱码信息平滑下发。
2.根据权利要求1所述的物流箱码的通用接收订阅派发方法,其特征在于,基于无锁队列的算法具体为:
定义一个线程安全的对象数组;
初始化队列的head和tail均指向数组的0下标;
队列put操作:如果tail小于数组长度,则放入数组的head位置,tail自增1并返回操作成功,否则返回操作失败;
队列get操作:如果head等于tail则返回空对象,否则取tail位置的对象并置为空,head自增1并返回该对象。
3.根据权利要求2所述的物流箱码的通用接收订阅派发方法,其特征在于,基于无锁队列的算法中所有操作均为原子操作,使用时,put操作写入数据,get操作读取数据。
4.根据权利要求1所述的物流箱码的通用接收订阅派发方法,其特征在于,箱码接收时,比较包含内层箱码的箱码报文大小N与单个箱码包含内层箱码的最大阈值M,若N>M,采用现成安全的无锁队列算法插入数据库;若N≤M,则拆分成多个内层箱码,插入数据库。
5.根据权利要求1所述的物流箱码的通用接收订阅派发方法,其特征在于,箱码的属性包括箱码类型、是否料箱、包装对象、内层箱码数、始发站、来源系统和承运商。
6.根据权利要求1所述的物流箱码的通用接收订阅派发方法,其特征在于,所述通用箱码数据结构以箱码号为主键,分为箱码head和箱码items,箱码head是箱码的基本属性,箱码items是箱码内层包装的详细信息集合。
7.根据权利要求1所述的对物流箱码的通用接收订阅派发方法,其特征在于,根据时间周期和该周期内接收箱码数据量,自动调整接收和派发吞吐量。
8.一种物流箱码的通用接收订阅派发系统,其特征在于,包括:
接收模块,使用无锁队列对箱码报文做削峰处理,部署到分布式wilfly集群,在启动后加入ZK集群和服务治理集群;
箱码订阅管理模块,使用groovy表达式作为规则引擎,部署到分布式wilfly集群,在启动后加入ZK集群;
箱码下发模块,使用无锁队列对箱码报文做限流处理,部署到分布式wilfly集群,在启动后加入ZK集群。
9.根据权利要求8所述的物流箱码的通用接收订阅派发系统,其特征在于,部署箱码服务的Mysql集群和Redis集群,箱码主表采用对箱码做hash运算分库分表路由的方式存储箱码数据,Redis提供分布式锁、规则下发缓存能力,部署hbase集群作为数据归档。
10.根据权利要求9所述的物流箱码的通用接收订阅派发系统,其特征在于,箱码接收模块和箱码下发模块具备互为补偿能力,Mysql在保存接收到的箱码数据出现单点宕机异常时,Redis保存异常数据并通过调度任务在Mysql恢复后重新将箱码入库;Redis宕机无法读取下发规则时,通过Mysql读取下发规则。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于江苏苏宁物流有限公司,未经江苏苏宁物流有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911229648.5/1.html,转载请声明来源钻瓜专利网。