一种订单统计的优化方法与流程

文档序号:28861853发布日期:2022-02-12 01:09阅读:154来源:国知局
一种订单统计的优化方法与流程

1.本发明涉及网约车领域,尤其涉及一种订单统计的优化方法。


背景技术:

2.司乘订单统计在网约车中有大量的应用场景,比如:司机完单奖励、新乘客发券儿、司机星级展示、高价值用户优惠。
3.乘客统计表中包含乘客基本信息、个人、机构单完单信息,统计状态,统计状态包括待统计、统计中、统计完成。
4.司机统计表中包含司机基本信息、个人、机构单完单信息,统计状态。
5.新用户注册,新用户包括乘客/司机,将乘客/司机信息插入对应统计表。
6.每30s扫描订单表将订单表中完单时间在上次统计时间之后的订单数据全部取出,从订单中取出下单乘客id,接单司机id,分别更新乘客和司机统计表,将对应乘客或司机的统计状态更新为待统计。
7.每1min扫描一次统计表中统计状态为:待统计的数据,再次扫描订单表,将对应用户或者乘客最新的完单信息统计出来,更新回统计表。
8.现有技术中的统计方法,方案设计复杂,代码和逻辑晦涩不易理解;30s扫描一次数据表,1min更新一次统计数据,统计数据不够实时;多次扫描订单表,获取待统计数据和统计司乘完单信息,对数据库造成很大压力。


技术实现要素:

9.鉴于上述问题,提出了本发明以便提供克服上述问题或者至少部分地解决上述问题的一种订单统计的优化方法。
10.根据本发明的一个方面,提供了一种订单统计的优化方法,所述优化方法包括:
11.采用数据变动监听组件获取订单数据变化,并发送订单数据消息队列消息;
12.接收所述订单数据消息队列消息并存储,以供消费者消费信息存储器redis;
13.从所述消费信息存储器中获取现有乘客统计信息;
14.从所述消费信息存储器中获取现有司机统计信息。
15.可选的,所述接收所述订单数据消息队列消息并存储,以供消费者消费信息存储器具体包括:缓存中间件,内存存储,查询响应在1ms以内,查询效率为磁盘存储的10倍,用来缓存司机、乘客统计数据,避免磁盘存储访问;
16.配置canal监听订单数据变化,订单数据变化包括插入、更新和删除,将新增数据或变更数据发送到rocketmq中;
17.配置消费者,监听订单变动数据,包括乘客信息,司机信息,订单是个人单还是机构单,变更实时获取;
18.新乘客注册:将用户信息,乘客id、注册时间写入统计表,完单数据初始化为0,统计状态置更新为待统计状态;
19.新司机注册:将司机信息,司机id、注册时间写入统计表,完单数初始化为0,统计状态更新为待统计;
20.监听订单数据变动,处理订单完单状态。
21.可选的,所述从所述消费信息存储器中获取现有乘客统计信息具体包括:
22.若所述消费信息存储器中为空,说明是首单,根据订单类型ordertype更新对应统计字段;
23.若所述消费信息存储器为非空,redis中已有乘客统计信息,说明已有统计信息,取出原有信息,将对应字段+1,ordertype为1,则将个人单完单数的值增加1,机构单完单数的值不变,更新缓存,并且更新回磁盘存储乘客统计表。
24.可选的,所述从所述消费信息存储器中获取现有司机统计信息具体包括:
25.根据ordertype和是否首单,更新redis数据并更新司机统计表;
26.实时统计订单数据。
27.可选的,所述根据订单类型ordertype更新对应统计字段具体包括:
28.若订单类型ordertype为1,订单为个人单,将司乘统计表对应个人单完单数字段更新为1,机构单完单数不变;
29.若订单类型ordertype为2,订单为机构单,将机构单完单数字段置为1,个人单完单数不变,保持为0,写回redis,并写回所述磁盘存储中乘客统计表。
30.本发明提供了提供了一种订单统计的优化方法,所述优化方法包括:采用数据变动监听组件获取订单数据变化,并发送订单数据消息队列消息;接收所述订单数据消息队列消息并存储,以供消费者消费信息存储器redis;从所述消费信息存储器中获取现有乘客统计信息;从所述消费信息存储器中获取现有司机统计信息。缓存已有统计数据,减少统计过程耗时,且快速响应统计数据查询,实时监听完单数据,实时完成司乘完单统计。
31.上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
32.为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
33.图1为本发明实施例提供的一种订单统计的优化方法流程图。
具体实施方式
34.下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
35.本发明的说明书实施例和权利要求书及附图中的术语“包括”和“具有”以及他们
的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元。
36.下面结合附图和实施例,对本发明的技术方案做进一步的详细描述。
37.如图1所示,一种订单统计的优化方法,所述优化方法包括:
38.采用数据变动监听组件获取订单数据变化,并发送订单数据消息队列消息。
39.接收订单数据消息队列消息并存储,以供消费者消费信息存储器redis。
40.缓存中间件,内存存储,查询响应在1ms以内,查询效率为磁盘存储的10倍,用来缓存司机、乘客统计数据,避免磁盘存储访问。
41.配置canal监听订单数据变化,订单数据变化包括插入、更新和删除,将新增数据或变更数据发送到rocketmq中。
42.配置消费者,监听订单变动数据,包括乘客信息,司机信息,订单是个人单还是机构单,变更实时获取。
43.新乘客注册:将用户信息,乘客id、注册时间写入统计表,完单数据初始化为0,统计状态置更新为待统计状态。
44.新司机注册:将司机信息,司机id、注册时间写入统计表,完单数初始化为0,统计状态更新为待统计。监听订单数据变动,处理订单完单状态。从消费信息存储器中获取现有乘客统计信息。
45.若消费信息存储器中为空,说明是首单,根据订单类型ordertype更新对应统计字段;若订单类型ordertype为1,订单为个人单,将司乘统计表对应个人单完单数字段更新为1,机构单完单数不变。
46.若订单类型ordertype为2,订单为机构单,将机构单完单数字段置为1,个人单完单数不变,保持为0,写回redis,并写回磁盘存储中乘客统计表。
47.若消费信息存储器为非空,redis中已有乘客统计信息,说明已有统计信息,取出原有信息,将对应字段+1,ordertype为1,则将个人单完单数的值增加1,机构单完单数的值不变,更新缓存,并且更新回磁盘存储乘客统计表。
48.从消费信息存储器中获取现有司机统计信息;根据ordertype和是否首单,更新redis数据并更新司机统计表;实时统计订单数据。
49.有益效果:缓存已有统计数据,减少统计过程耗时,快速响应统计数据查询;实时监听完单数据,实时完成司乘完单统计;无需反复扫描订单表,极大降低磁盘存储的压力。
50.以上的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1