本发明属于网约车运营,具体涉及一种避免无法下单的降级方法。
背景技术:
1、由于网约车涉及到的业务很多,根据软件的设计原则,业务接口分布在多个应用系统中,多个应用系统组成某个业务线的接口完整调用链。在网约车场景中乘客约车的流程一般为,乘客在app上输入上下车地点->后端服务器估价->乘客确认叫车->后端服务器下单。估价的目的是给乘客展示该行程大概需要的费用,真实行程中产生的费用与预估价可能并不会完全一致,但在某个波动的范围内。其时序图如图1。
2、如果第1步开放平台应用调计费应用的预估接口大面积失败(假如每分钟有100000个调用,其中60000个甚至更多的调用返回了异常或失败,这种情况失败率已经达到了60%以上,则可认为是大面积失败;失败的原因有很多可能,包括但不限于计费应用压力过大、网络异常情况等原因),导致乘客无法确认用车,进而无法下单。此种情况下如何正常向乘客返回预估价,从而不影响下单,成为急需待解决的问题。
技术实现思路
1、本发明的目的在于提供一种避免无法下单的降级方法,以解决上述背景技术中提出的问题。
2、为实现上述目的,本发明提供如下技术方案:一种避免无法下单的降级方法,步骤一:进行大数据定时任务;
3、s11:计算上一日的开始、结束时间;
4、s12:分页查询订单完成时间处于以上开始、结束时间内的订单;
5、s13:判断本次查询到的订单总量是否大于0;若是,则继续执行,否则结束;
6、s14:逐条提取订单中的城市码、行驶里程、时长、车型、服务类型、订单原始价格数据;
7、s15:将步骤s14中的数据保存至mongodb数据库;
8、步骤二:开关控制降级预估;
9、s21:接收乘客app发送过来的预估请求;
10、s22:判断降级开关是否打开;若关闭则执行原有的正常预估逻辑并返回;若打开,开始执行降级的预估逻辑:1)调用lbs接口获取从上车地址到下车地址之间的行驶里程、时长;
11、2)组织请求大数据接口的请求参数;
12、3)请求大数据查询接口,以获取与本次预估最相近的最新10个历史订单集合;
13、4)判断步骤3)获取到的历史订单集合数量是否大于0;若大于0则继续,否则结束;
14、5)从订单集合中寻找与步骤1)得到的行驶里程最相近的一个订单;
15、6)获取步骤5)得到的订单上的原始价格作为预估价;并生成pricetoken;
16、7)组织预估请求返回结果,将步骤1)得到的行驶里程和时长,步骤6)得到的预估价、pricetoken作为预估返回结果;
17、8)绑定pricetoken与预估返回结果;
18、9)向乘客端app输出返回结果。
19、优选的,所述mongodb是一个基于分布式文件存储的数据库,可存储大量数据、动态扩展存储内容。
20、优选的,步骤8)中,将pricetoken作为redis的key,步骤7)的返回结果作为value,调用redis的set命令存入缓存,缓存一小时,以便绑定pricetoken与预估返回结果的关系,下单时校验先前是否曾预估过。
21、优选的,所述定时任务在每日凌晨3点开始执行,计算上一日的开始、结束时间的值分别为00:00:00-23:59:59。
22、优选的,步骤2)中,请求参数有城市码、行驶里程、车型、服务类型。
23、与现有技术相比,本发明的有益效果是:本发明在下游计费应用预估接口无法调用或者预估接口出现大面积异常/失败时,人工打开开关后,降级调用大数据接口查询该城市范围近似距离的历史订单所需费用作为预估价返回,从而绕开有问题的接口;不会会阻碍业务流程,乘客可以继续下单;提升了乘客体验。
1.一种避免无法下单的降级方法,其特征在于:步骤一:进行大数据定时任务;
2.根据权利要求1所述的一种避免无法下单的降级方法,其特征在于:所述mongodb是一个基于分布式文件存储的数据库,可存储大量数据、动态扩展存储内容。
3.根据权利要求1所述的一种避免无法下单的降级方法,其特征在于:步骤8)中,将pricetoken作为redis的key,步骤7)的返回结果作为value,调用redis的set命令存入缓存,缓存一小时,以便绑定pricetoken与预估返回结果的关系,下单时校验先前是否曾预估过。
4.根据权利要求1所述的一种避免无法下单的降级方法,其特征在于:所述定时任务在每日凌晨3点开始执行,计算上一日的开始、结束时间的值分别为00:00:00-23:59:59。
5.根据权利要求1所述的一种避免无法下单的降级方法,其特征在于:步骤2)中,请求参数有城市码、行驶里程、车型、服务类型。。