一种多运力同时分发订单的优化方法与流程

文档序号:36936004发布日期:2024-02-02 22:03阅读:15来源:国知局
一种多运力同时分发订单的优化方法与流程

本发明属于网约车,具体涉及一种多运力同时分发订单的优化方法。


背景技术:

1、随着公司业务的逐步扩大,已与越来越多的运力展开了合作;作为订单流量方,同时将订单分发给符合条件的运力,这个过程分为获取运力预估价与订单分发2个过程;程序首先调用各运力方的预估价接口,等收到所有运力反馈的预估结果后,接着调用各运力下单接口分发订单。虽然前后2个步骤都是多线程并发执行,但由于需要等所有运力都返回预估结果后才能继续接下来的下单过程。如果某个运力的预估服务接口返回耗时严重,则会拖延下一步向运力下单的时间,最终降低了向运力分发订单整个过程的性能。因此,如何降低由于单个运力预估耗时长引起的整体分发订单性能降低成为急需解决的问题。


技术实现思路

1、本发明的目的在于提供一种多运力同时分发订单的优化方法,以解决上述背景技术中提出的问题。

2、为实现上述目的,本发明提供如下技术方案:一种多运力同时分发订单的优化方法,具体步骤包括:

3、s1:接收下单服务接口的请求;

4、s2:查询所有有效的运力集合;

5、s3:创建一个阻塞器,并设置阻塞器的总任务原子变量大小为有效运力集合的大小;

6、s4:遍历运力集合,每遍历一个运力时,创建一个独立的校验线程和一个订单分发线程,分别用来校验该运力是否有资格接收订单、向运力分发订单;

7、s5:依次校验运力是否开通城市、是否开通车型、是否开通服务类型的条件限制;

8、s6:判断校验结果是否通过,若通过则继续,否则结束;

9、s7:校验线程执行从运力获取预估价的处理逻辑;

10、s8:校验线程调用阻塞器的put接口将预估结果放入阻塞器中;

11、s9:阻塞器中的结果持有原子变量自增1;

12、s10:下单分发线程调用阻塞器的get接口,从阻塞器中尝试获取预估结果;

13、s11:阻塞器判断当前总任务原子变量大小是否为0,为0则直接输出空预估结果之后执行步骤s14;否则继续;

14、12:阻塞器判断当前结果持有原子变量是否为0,不为0则直接输出一个预估结果之后执行步骤s13;为0则继续判断当前结果持有原子变量是否为0,不为0则直接输出一个预估结果之后执行步骤s13,否则输出空预估结果之后执行步骤s14;

15、s13:阻塞器将结果持有原子变量和总任务原子变量分别减1;

16、s14:下单分发线程执行原有逻辑根据预估结果判断是否允许向运力下单,若允许则继续;

17、s15:下单分发线程执行原有向运力下单的处理逻辑,向运力下单;

18、s16:结束。

19、优选的,步骤s3中,有效运力集合大小数值表示有对应数值的个数运力需要被校验和下单;当阻塞器中有数据时马上返回数据,当阻塞器中没有数据时则卡停指定时长后返回空。

20、优选的,步骤s12中,阻塞器判断当前结果持有原子变量为0后,需要悬停2秒,为了等待预估结果的出现。

21、优选的,步骤s14中,判断不允许向运力下单时,则打印运力号、预估结果日志信息并结束。

22、优选的,步骤s5-s9是校验线程处理的步骤,步骤s10-s15是分发线程处理的步骤;校验线程处理的步骤和分发线程处理的步骤是并行执行的。

23、与现有技术相比,本发明的有益效果是:本发明通过阻塞器将预估和下单隔离,允许预估和下单两个步骤并行执行,在第一步预估和第二步分发订单的两个步骤中间增加一个阻塞器;下单服务接口收到请求后,同时启动预估与分发订单两个步骤,预估完成后将预估结果放入阻塞器中,下单步骤一直不断地从阻塞器中获取预估结果,只要能获取到预估结果就马上向相关运力分发订单;解决了由于某些运力的预估服务耗时严重,导致向整体运力分发订单的效率降低的问题。



技术特征:

1.一种多运力同时分发订单的优化方法,其特征在于:具体步骤包括:

2.根据权利要求1所述的一种多运力同时分发订单的优化方法,其特征在于:步骤s3中,有效运力集合大小数值表示有对应数值的个数运力需要被校验和下单;当阻塞器中有数据时马上返回数据,当阻塞器中没有数据时则卡停指定时长后返回空。

3.根据权利要求1所述的一种多运力同时分发订单的优化方法,其特征在于:步骤s12中,阻塞器判断当前结果持有原子变量为0后,需要悬停2秒,为了等待预估结果的出现。

4.根据权利要求1所述的一种多运力同时分发订单的优化方法,其特征在于:步骤s14中,判断不允许向运力下单时,则打印运力号、预估结果日志信息并结束。

5.根据权利要求1所述的一种多运力同时分发订单的优化方法,其特征在于:步骤s5-s9是校验线程处理的步骤,步骤s10-s15是分发线程处理的步骤;校验线程处理的步骤和分发线程处理的步骤是并行执行的。


技术总结
本发明公开了一种多运力同时分发订单的优化方法,S1:接收下单服务接口的请求;S2:查询所有有效的运力集合;S3:创建一个阻塞器,并设置阻塞器的总任务原子变量大小为有效运力集合的大小;S4:遍历运力集合,每遍历一个运力时,创建一个独立的校验线程和一个订单分发线程,分别用来校验该运力是否有资格接收订单、向运力分发订单;本发明下单服务接口收到请求后,同时启动预估与分发订单两个步骤,预估完成后将预估结果放入阻塞器中,下单步骤一直不断地从阻塞器中获取预估结果,只要能获取到预估结果就马上向相关运力分发订单;解决了由于某些运力的预估服务耗时严重,导致向整体运力分发订单的效率降低的问题。

技术研发人员:赵东辉
受保护的技术使用者:首约科技(北京)有限公司
技术研发日:
技术公布日:2024/2/1
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1