物流轨迹推送方法、装置、设备及存储介质与流程

    专利查询2022-07-07  132



    1.本发明涉及物流技术领域,尤其涉及一种物流轨迹推送方法、装置、设备及存储介质。


    背景技术:

    2.目前,物流行业已经处于高速发展期,各个物流公司之间的竞争也日益加剧,因此时效性日渐成为评判物流公司信誉的一个主要制约因素,而快递包裹在收揽件和运输途径的物流轨迹可以时刻被目标用户所关注,也可以间接反映物流的时效性。
    3.通常的物流推送接口只能存储15天内订单数据,不满足物流轨迹跨15天外的业务场景;服务器每日处理数亿轨迹数据,效率低,容易出错,难排查;通常每条业务线对接物流轨迹需要每对接一条业务线开发一次代码,成本巨大,维护成本剧增。


    技术实现要素:

    4.有鉴于此,有必要针对效率低、容易出错等的问题,提供一种物流轨迹推送方法、装置、设备及存储介质。
    5.一种物流轨迹推送方法,所述物流轨迹推送方法包括以下步骤:
    6.调用预置订阅接口获取物流订单信息,并将所述物流订单信息传输至预置的订单数据库;
    7.采用redis分布式缓存从所述订单数据库中的抓取所述物流订单信息;
    8.获取扫描终端实时传输的物流扫描信息;
    9.将所述物流订单信息和所述物流扫描信息进行数据碰撞比对,得到碰撞结果和物流运输轨迹;
    10.当所述碰撞结果为碰撞成功时,将所述物流运输轨迹推送至对应的目标终端。
    11.在其中一个实施例中,所述物流订单信息至少包括第一订单号、第一运单号、收件人信息、发件人信息,所述物流扫描信息至少包括扫描时间、第二订单号、第二运单号、扫描类型、备注编码。
    12.在其中一个实施例中,获取所述物流订单信息,并将所述物流订单信息存储至redis队列和历史轨迹处理队列中;
    13.启动多个消费进程,通过所述消费进程对所述redis队列中的所述物流订单信息进行消费处理,并对消费处理过程进行监控;
    14.若消费处理过程中监控到异常数据,则记录到异常日志,重新将所述异常日志中的所述物流订单信息存储至redis队列中并进行消费处理;
    15.将消费完成的所述物流订单信息批量传输至预置的订单数据库中。
    16.在其中一个实施例中,实时接收扫描终端发送的物流扫描信息,并将所述物流扫描信息传输至kafka平台;
    17.实时消费所述kafka平台中的所述物流扫描信息,并基于历史轨迹处理队列查询
    是否存在历史轨迹;
    18.若不存在,则对所述物流扫描信息进行过滤。
    19.在其中一个实施例中,分别对所述物流订单信息和所述物流扫描信息解析得到第一运单号和第二运单号;
    20.对所述第一运单号和所述第二运单号进行碰撞,得到碰撞结果;
    21.若所述碰撞结果为第一运单号和所述第二运单号相同,则将所述物流订单信息和所述物流扫描信息进行数据合并,以得到对应的物流运输轨迹;
    22.将所述物流运输轨迹存储至待推送队列。
    23.在其中一个实施例中,获取所述物流运输轨迹对应的所属业务线;
    24.根据所述所属业务线对所述物流运输轨迹进行分流处理,并将所述物流运输轨迹推送至对应的目标终端,得到推送结果;
    25.当所述推送结果为推送失败时,获取预构建的重推机制,利用所述重推机制将所述物流运输轨迹重推至对应的目标终端;
    26.获取所述重推机制执行的重推次数,并判断所述重推次数是否超过预设的次数阈值;
    27.若是,则标记对应的所述物流运输轨迹为异常记录,并将所述异常记录推送至elk日志中保存。
    28.一种物流轨迹推送装置,所述物流轨迹推送装置包括:
    29.调用模块,用于调用预置订阅接口获取物流订单信息,并将所述物流订单信息传输至预置的订单数据库;
    30.抓取模块,用于采用redis分布式缓存从所述订单数据库中的抓取所述物流订单信息;
    31.传输模块,用于获取扫描终端实时传输的物流扫描信息;
    32.碰撞模块,用于将所述物流订单信息和所述物流扫描信息进行数据碰撞比对,得到碰撞结果和物流运输轨迹;
    33.推送模块,用于当所述碰撞结果为碰撞成功时,将所述物流运输轨迹推送至对应的目标终端。
    34.在其中一个实施例中,所述推送模块,包括:
    35.获取子模块,用于获取所述物流运输轨迹对应的所属业务线;
    36.分流子模块,用于根据所述所属业务线对所述物流运输轨迹进行分流处理,并将所述物流运输轨迹推送至对应的目标终端,得到推送结果;
    37.重推子模块,用于当所述推送结果为推送失败时,获取预构建的重推机制,利用所述重推机制将所述物流运输轨迹重推至对应的目标终端;
    38.判断子模块,用于获取所述重推机制执行的重推次数,并判断所述重推次数是否超过预设的次数阈值;
    39.标记子模块,用于若是,则标记对应的所述物流运输轨迹为异常记录,并将所述异常记录推送至elk日志中保存。
    40.一种物流轨迹推送设备,所述物流轨迹推送设备包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;所述至少一
    个处理器调用所述存储器中的所述指令,以使得所述物流轨迹推送设备执行上述所述的物流轨迹推送方法的步骤。
    41.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述所述的物流轨迹推送方法的步骤。
    42.上述物流轨迹推送方法、装置、设备及存储介质,通过调用预置订阅接口获取物流订单信息,并将所述物流订单信息传输至预置的订单数据库;采用redis分布式缓存从所述订单数据库中的抓取所述物流订单信息;获取扫描终端实时传输的物流扫描信息;将所述物流订单信息和所述物流扫描信息进行数据碰撞比对,得到碰撞结果和物流运输轨迹;当所述碰撞结果为碰撞成功时,将所述物流运输轨迹推送至对应的目标终端。本发明避免物流时间跨度长导致物流数据漏推,保证物流订单信息生产完成后,高速处理,提高大数据处理效率和对接响应速度快,保障实时推送成功率,并及时记录全链路异常推送日志,降低维护成本。
    附图说明
    43.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。
    44.图1为本发明物流轨迹推送方法的第一个实施例示意图;
    45.图2为本发明物流轨迹推送方法的第二个实施例示意图;
    46.图3为本发明物流轨迹推送装置的第一个实施例示意图;
    47.图4为本发明物流轨迹推送装置的第二个实施例示意图;
    48.图5为本发明物流轨迹推送设备的一个实施例示意图。
    具体实施方式
    49.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
    50.本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。
    51.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
    52.作为一个较好的实施例,如图1所示,一种物流轨迹推送方法,用于向菜鸟平台推送物流运输轨迹,该物流轨迹推送方法包括以下步骤:
    53.步骤101、调用预置订阅接口获取物流订单信息,并将物流订单信息传输至预置的订单数据库;
    54.可以理解的是,本发明的执行主体可以为物流轨迹推送装置,还可以是终端或者
    服务器,具体此处不做限定。本发明实施例以服务器为执行主体为例进行说明。
    55.本实施例中,预置订阅接口用于实时接收并处理来自目标终端(可以为物流企业)的物流订单信息,菜鸟平台根据订阅接口返回值判断是否订阅成功。订阅接口返回值枚举值:若返回true,则回传订阅运单号,若返回false,则回传错误编码及错误描述;服务器调用预置订阅接口获取物流订单信息,其中物流订单信息至少包括第一订单号、第一运单号、收件人信息、发件人信息,收件人信息包括收件人地址、收件人电话和收件人姓名;发件人信息包括发件人地址、发件人电话和发件人姓名,第一运单号用于指示快递的投递状态;第一订单号为物品订单信息,二者存在一一对应的关系;采用预置订阅接口对接响应速度快,提高目标终端的接入量,提高容错率;因每日运单量为百万级,双11运单量运单量近千万,传统的同步入库模式容易导致数据堆积,也难以满足订单快速入库的需求,所以采用生产 消费模式异步批量入库模式,在一个实施例中,服务器将物流订单信息传输至预置的订单数据库,具体过程如步骤1011-步骤1014所示。
    56.步骤1011、获取物流订单信息,并将物流订单信息存储至redis队列和历史轨迹处理队列中;
    57.本实施例中,生产 消费模式中生产者生产消息放到队列里,多个消费者同时监听队列,谁先抢到消息谁就会从队列中取走消息;即对于每个消息只能被最多一个消费者拥有,服务器获取物流订单信息,redis作为消息中间件,由于redis的列表是使用双向链表实现的,保存了头尾节点,所以在列表头尾两边插取元素都是非常快的,redis数据结构的列表list提供了push和pup命令,遵循着先入先出fifo的原则,使用push/pop方式的优点在于消息可以持久化,redis的队列list是有序的且可以重复的,作为消息队列使用时可使用rpush/lpush操作入队,使用lpop/rpop操作出队;服务器将物流订单信息存储至redis队列中和历史轨迹处理队列,消息队列是在消息的传输过程中保存消息的容器;历史轨迹处理队列用于历史数据自动补推机制,部分单子会在菜鸟平台订阅的时候就存在历史轨迹,因此会同时把物流订单信息存储至一个历史轨迹处理队列中,以保证订阅延迟的订单也会自动补推历史轨迹给菜鸟平台。
    58.步骤1012、启动多个消费进程,通过消费进程对redis队列中的物流订单信息进行消费处理,并对消费处理过程进行监控;
    59.本实施例中,物流订单信息存储至redis队列后,如果消费进程每次从消息队列数据表中读取一条消息进行消费,就是出现消费进程频繁读写以影响性能、消息队列重复消费等问题,因此服务器启动多个消费进程,消费队列中生产者往管道中写消息,消费者从管道中读消息,服务器通过多进程消费队列消费redis队列,以保证数据高速消费;同时服务器对消费处理过程进行监控,以避免出现异常情况,保证数据不丢失,若出现异常则执行步骤1013。
    60.步骤1013、若消费处理过程中监控到异常数据,则记录到异常日志,重新将异常日志中的物流订单信息存储至redis队列中并进行消费处理;
    61.本实施例中,当服务器监控到异常数据时,发送异常报警,并采用异常日志进行记录,便于重新将异常的物流订单信息存储至redis队列中并进行消费处理,保证数据不丢失和不漏推。
    62.步骤1014、将消费完成的物流订单信息批量传输至预置的订单数据库中。
    63.本实施例中,服务器将将消费完成的物流订单信息批量传输至预置的订单数据库中,采用生产者 多消费者的模式,保证数据生产完成后,高速处理。
    64.步骤102、采用redis分布式缓存从订单数据库中的抓取物流订单信息;
    65.本实施例中,采用redis分布式缓存存储物流订单信息,满足2月内订单对应的物流运输轨迹推送,避免物流时间跨度长导致物流数据漏推,同时保证物流订单信息生产完成后,高速处理;通过key做一致性哈希,实现key对应redis结点的分布,其中一致性哈希的实现包括hash值计算和一致性的实现,通过支持md5与murmurhash两种计算方式,默认是采用murmurhash,高效的hash计算,通过java的treemap来模拟环状结构,实现均匀分布;采用redis分布式缓存从订单数据库中的抓取物流订单信息,分布式缓存在6台redis中间件机器上,缓存周期60天,避免部分跨境单子周期过长,订单缓存丢失而导致部分轨迹消息推送丢失;通过redis分布式缓存,保证物流订单信息不会过期导致无法推送物流信息。
    66.步骤103、获取扫描终端实时传输的物流扫描信息;
    67.本实施例中,扫描业务员利用巴枪等途径对快递包裹进行扫描,以生成物流扫描信息,其中物流扫描信息至少包括扫描时间、第二订单号、第二运单号、扫描类型、备注编码;在一个实施例中,服务器获取扫描终端实时传输的物流扫描信息,具体过程如步骤1031-步骤1033所示。
    68.步骤1031、实时接收扫描终端发送的物流扫描信息,并将物流扫描信息传输至kafka平台;
    69.本实施例中,kafka是一个分布式流媒体平台,它主要有三种功能:发布和订阅消息流,这个功能类似于消息队列,这也是kafka归类为消息队列框架的原因;以容错的方式记录消息流,kafka以文件的方式来存储消息流;可以再消息发布的时候进行处理;kafka平台在系统或应用程序之间构建可靠的用于传输实时数据的管道,构建实时的流数据处理程序来变换或处理数据流;服务器实时接收扫描终端发送的物流扫描信息,再将物流扫描信息传输至kafka平台。
    70.步骤1032、实时消费kafka平台中的物流扫描信息,并基于历史轨迹处理队列查询是否存在历史轨迹;
    71.步骤1033、若不存在,则对物流扫描信息进行过滤。
    72.本实施例中,服务器实时消费kafka平台中的物流扫描信息,采用kafka分布式消息队列处理,保证数据快速高效处理,解决传统数据库i/0瓶颈导致数据生产缓慢问题;判断是否存在历史轨迹主要是用于历史数据自动补推机制,如果存在,就进行碰撞处理,处理后以存入待推送队列,如果不存在,则对物流扫描信息进行过滤,以保证订阅延迟的订单也会自动补推历史轨迹给菜鸟平台;采用kafka平台提高大数据处理效率,解决数据生产缓慢问题。
    73.步骤104、将物流订单信息和物流扫描信息进行数据碰撞比对,得到碰撞结果和物流运输轨迹;
    74.本实施例中,服务器将物流订单信息和物流扫描信息进行数据碰撞比对,两两配对成功,则是菜鸟仓需要推送轨迹的单子,把数据合并,得到碰撞结果和物流运输轨迹,在一个实施例中,具体过程如步骤1041-步骤1044所示。
    75.步骤1041、分别对物流订单信息和物流扫描信息解析得到第一运单号和第二运单
    号;
    76.步骤1042、对第一运单号和第二运单号进行碰撞,得到碰撞结果;
    77.步骤1043、若碰撞结果为第一运单号和第二运单号相同,则将物流订单信息和物流扫描信息进行数据合并,以得到对应的物流运输轨迹;
    78.本实施例中,服务器对物流订单信息解析得到第一运单号,服务器对物流扫描信息解析得到第二运单号,服务器对第一运单号和第二运单号进行碰撞,得到碰撞结果,碰撞结果包括第一运单号和第二运单号相同;第一运单号和第二运单号不相同,当第一运单号和第二运单号相同,服务器确定碰撞成功;当第一运单号和第二运单号不相同,服务器确定碰撞不成功;当碰撞成功时,服务器物流订单信息和物流扫描信息进行数据合并生成物料运输轨迹;若碰撞失败时,服务器可以根据具体设定对物流订单信息和物流扫描信息中的其他项进行碰撞,对此本实施不作具体限定。
    79.步骤1044、将物流运输轨迹存储至待推送队列。
    80.本实施例中,服务器将物流运输轨迹存储至预置的待推送队列,待推送队列中可以为远程服务字典队列。
    81.步骤105、当碰撞结果为碰撞成功时,将物流运输轨迹推送至对应的目标终端。
    82.本实施例中,将物流运输轨迹上传至区块链网络中进行存储,由于区块链技术具有不可篡改性使得信息的真实性得到了保证,从而实现确认信息的准确来源,保证物流运输轨迹可追溯性;目标终端即客户的终端,可以是手机或电脑等,由客户在菜鸟平台上订阅,客户订阅成功后,该订单的后续物流运输轨迹和历史轨迹,会自动补推给菜鸟平台,客户可以通过菜鸟平台查看物流运输轨迹。
    83.本发明实施例中,通过调用预置订阅接口获取物流订单信息,并将物流订单信息传输至预置的订单数据库;采用redis分布式缓存从订单数据库中的抓取物流订单信息;获取扫描终端实时传输的物流扫描信息;将物流订单信息和物流扫描信息进行数据碰撞比对,得到碰撞结果和物流运输轨迹;当碰撞结果为碰撞成功时,将物流运输轨迹推送至对应的目标终端。本发明避免物流时间跨度长导致物流数据漏推,保证物流订单信息生产完成后,高速处理,提高大数据处理效率和对接响应速度快,保障实时推送成功率,并及时记录全链路异常推送日志,降低维护成本;推送及时、快速、日志记录完整,成功率高,接口负载能力强;用日志多维度分析、各节点实时数据图表化记录、节点异常消息报警等技术监控整个链路所有链路节点的情况,做到异常多纬度,快速感知。
    84.请参阅图2,本发明实施例中物流轨迹推送方法的第二个实施例包括:
    85.步骤201、获取物流运输轨迹对应的所属业务线;
    86.本实施例中,菜鸟平台存在众多业务线,服务器获取物流运输轨迹对应的所属业务线。
    87.步骤202、根据所属业务线对物流运输轨迹进行分流处理,并将物流运输轨迹推送至对应的目标终端,得到推送结果;
    88.本实施例中,服务器根据所属业务线的资源码物流运输轨迹进行分流处理,分流处理可以缓解服务器压力,在分流时,服务器识别对应的所属业务线是否有特殊定制进行定制化分流处理,没有定制的进行标准化分流处理,服务器确定分流处理就,再将物流运输轨迹推送至对应的目标终端,得到推送结果,推送结果包括推送成功和推送失败;本发明只
    需一套代码即可快速对接菜鸟平台众多业务线,采用标准化和定制化体系,保证特殊需求的资源码特殊化处理,非特殊需求,统一处理,增强耦合性,提供对接响应速度快,降低维护成本。
    89.步骤203、当推送结果为推送失败时,获取预构建的重推机制,利用重推机制将物流运输轨迹重推至对应的目标终端;
    90.步骤204、获取重推机制执行的重推次数,并判断重推次数是否超过预设的次数阈值;
    91.本实施例中,当服务器确定推送结果为推送失败时,服务器采用重推机制,将物流运输轨迹重推至对应的目标终端,避免因网络波动造成物流轨迹漏推,确保实时推送成功率,提高推送效率;例如生产者与消费者之间应该约定一个超时时间,比如5分钟,对于超出这个时间没有得到响应的消息,启动重推机制,但要发送间隔和控制次数,比如每隔2分钟发送一次,直至重新推送的次数达到预定的次数,比如预定的次数为20次,否则会造成消息堆积。
    92.步骤205、若是,则标记对应的物流运输轨迹为异常记录,并将异常记录推送至elk日志中保存。
    93.本实施例中,elk实际上是三个工具,分别是elastricsearch、logstash、kibana,通过elk用来收集日志还有进行日志分析,最后通过可视化ui进行展示;elasticsearch简称es,它是一个实时的分布式搜索和分析引擎,它可以用于全文搜索,结构化搜索以及分析;logstash是一个具有实时传输能力的数据收集引擎,用来进行数据收集(如:读取文本文件)、解析,并将数据发送给es;kibana为elasticsearch提供了分析和可视化的web平台,它可以在elasticsearch的索引中查找,交互数据,并生成各种维度表格、图形;服务器将异常记录推送至elk日志中保存,同时整个物流运输轨迹推送过程全程记录日志,方便溯源、追踪、排查。
    94.本发明实施例中,获取物流运输轨迹对应的所属业务线,根据所属业务线对物流运输轨迹进行分流处理,并将物流运输轨迹推送至对应的目标终端,得到推送结果,当推送结果为推送失败时,获取预构建的重推机制,利用重推机制将物流运输轨迹重推至对应的目标终端,获取重推机制执行的重推次数,并判断重推次数是否超过预设的次数阈值,若是,则标记对应的物流运输轨迹为异常记录,并将异常记录推送至elk日志中保存;本发明采用重推机制,保障实时推送成功率;采用elk日志存储技术,及时记录全链路异常推送日志;采用标准 定制体系,保证特殊需求的资源码特殊化处理,非特殊需求,统一处理,增强耦合性,提供对接响应速度快,降低维护成本。
    95.请参阅图3,在一个实施例中,提出了一种物流轨迹推送装置,物流轨迹推送装置包括:
    96.调用模块301,用于调用预置订阅接口获取物流订单信息,并将物流订单信息传输至预置的订单数据库;
    97.抓取模块302,用于采用redis分布式缓存从订单数据库中的抓取物流订单信息;
    98.传输模块303,用于获取扫描终端实时传输的物流扫描信息;
    99.碰撞模块304,用于将物流订单信息和物流扫描信息进行数据碰撞比对,得到碰撞结果和物流运输轨迹;
    100.推送模块305,用于当碰撞结果为碰撞成功时,将物流运输轨迹推送至对应的目标终端。
    101.请参阅图4,本发明实施例中物流轨迹推送装置的第二个实施例,上述推送模块305,具体包括:
    102.获取子模块3051,用于获取物流运输轨迹对应的所属业务线;
    103.分流子模块3052,用于根据所属业务线对物流运输轨迹进行分流处理,并将物流运输轨迹推送至对应的目标终端,得到推送结果;
    104.重推子模块3053,用于当推送结果为推送失败时,获取预构建的重推机制,利用重推机制将物流运输轨迹重推至对应的目标终端;
    105.判断子模块3054,用于获取重推机制执行的重推次数,并判断重推次数是否超过预设的次数阈值;
    106.标记子模块3055,用于若是,则标记对应的物流运输轨迹为异常记录,并将异常记录推送至elk日志中保存。
    107.本发明实施例中,通过调用预置订阅接口获取物流订单信息,并将物流订单信息传输至预置的订单数据库;采用redis分布式缓存从订单数据库中的抓取物流订单信息;获取扫描终端实时传输的物流扫描信息;将物流订单信息和物流扫描信息进行数据碰撞比对,得到碰撞结果和物流运输轨迹;当碰撞结果为碰撞成功时,将物流运输轨迹推送至对应的目标终端。本发明避免物流时间跨度长导致物流数据漏推,保证物流订单信息生产完成后,高速处理,提高大数据处理效率和对接响应速度快,保障实时推送成功率,并及时记录全链路异常推送日志,降低维护成本。
    108.上面图3-4从模块化功能实体的角度对本发明实施例中的物流轨迹推送装置进行详细描述,下面从硬件处理的角度对本发明实施例中物流轨迹推送设备进行详细描述。
    109.图5是本发明实施例提供的一种物流轨迹推送设备的结构示意图,该物流轨迹推送设备500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,cpu)510(例如,一个或一个以上处理器)和存储器520,一个或一个以上存储应用程序533或数据532的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器520和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对物流轨迹推送设备500中的一系列指令操作。更进一步地,处理器510可以设置为与存储介质530通信,在物流轨迹推送设备500上执行存储介质530中的一系列指令操作。
    110.物流轨迹推送设备500还可以包括一个或一个以上电源540,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口560,和/或,一个或一个以上操作系统531,例如windows serve,mac os x,unix,linux,freebsd等等。本领域技术人员可以理解,图5示出的物流轨迹推送设备结构并不构成对本技术提供的物流轨迹推送设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
    111.一种物流轨迹推送设备以实现以下物流轨迹推送方法,所述物流轨迹推送方法具体包括以下步骤:
    112.调用预置订阅接口获取物流订单信息,并将所述物流订单信息传输至预置的订单数据库;
    113.采用redis分布式缓存从所述订单数据库中的抓取所述物流订单信息;
    114.获取扫描终端实时传输的物流扫描信息;
    115.将所述物流订单信息和所述物流扫描信息进行数据碰撞比对,得到碰撞结果和物流运输轨迹;
    116.当所述碰撞结果为碰撞成功时,将所述物流运输轨迹推送至对应的目标终端。
    117.在一个实施例中,所述物流订单信息至少包括第一订单号、第一运单号、收件人信息、发件人信息,所述物流扫描信息至少包括扫描时间、第二订单号、第二运单号、扫描类型、备注编码。
    118.在一个实施例中,获取所述物流订单信息,并将所述物流订单信息存储至redis队列和历史轨迹处理队列中;
    119.启动多个消费进程,通过所述消费进程对所述redis队列中的所述物流订单信息进行消费处理,并对消费处理过程进行监控;
    120.若消费处理过程中监控到异常数据,则记录到异常日志,重新将所述异常日志中的所述物流订单信息存储至redis队列中并进行消费处理;
    121.将消费完成的所述物流订单信息批量传输至预置的订单数据库中。
    122.在一个实施例中,实时接收扫描终端发送的物流扫描信息,并将所述物流扫描信息传输至kafka平台;
    123.实时消费所述kafka平台中的所述物流扫描信息,并基于历史轨迹处理队列查询是否存在历史轨迹;
    124.若不存在,则对所述物流扫描信息进行过滤。
    125.在一个实施例中,分别对所述物流订单信息和所述物流扫描信息解析得到第一运单号和第二运单号;
    126.对所述第一运单号和所述第二运单号进行碰撞,得到碰撞结果;
    127.若所述碰撞结果为第一运单号和所述第二运单号相同,则将所述物流订单信息和所述物流扫描信息进行数据合并,以得到对应的物流运输轨迹;
    128.将所述物流运输轨迹存储至待推送队列。
    129.在一个实施例中,获取所述物流运输轨迹对应的所属业务线;
    130.根据所述所属业务线对所述物流运输轨迹进行分流处理,并将所述物流运输轨迹推送至对应的目标终端,得到推送结果;
    131.当所述推送结果为推送失败时,获取预构建的重推机制,利用所述重推机制将所述物流运输轨迹重推至对应的目标终端;
    132.获取所述重推机制执行的重推次数,并判断所述重推次数是否超过预设的次数阈值;
    133.若是,则标记对应的所述物流运输轨迹为异常记录,并将所述异常记录推送至elk日志中保存。
    134.本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行以下物流轨迹推送方法,所述物流轨迹推送方法具体包括以下步骤:
    135.调用预置订阅接口获取物流订单信息,并将所述物流订单信息传输至预置的订单数据库;
    136.采用redis分布式缓存从所述订单数据库中的抓取所述物流订单信息;
    137.获取扫描终端实时传输的物流扫描信息;
    138.将所述物流订单信息和所述物流扫描信息进行数据碰撞比对,得到碰撞结果和物流运输轨迹;
    139.当所述碰撞结果为碰撞成功时,将所述物流运输轨迹推送至对应的目标终端。
    140.在一个实施例中,所述物流订单信息至少包括第一订单号、第一运单号、收件人信息、发件人信息,所述物流扫描信息至少包括扫描时间、第二订单号、第二运单号、扫描类型、备注编码。
    141.在一个实施例中,获取所述物流订单信息,并将所述物流订单信息存储至redis队列和历史轨迹处理队列中;
    142.启动多个消费进程,通过所述消费进程对所述redis队列中的所述物流订单信息进行消费处理,并对消费处理过程进行监控;
    143.若消费处理过程中监控到异常数据,则记录到异常日志,重新将所述异常日志中的所述物流订单信息存储至redis队列中并进行消费处理;
    144.将消费完成的所述物流订单信息批量传输至预置的订单数据库中。
    145.在一个实施例中,实时接收扫描终端发送的物流扫描信息,并将所述物流扫描信息传输至kafka平台;
    146.实时消费所述kafka平台中的所述物流扫描信息,并基于历史轨迹处理队列查询是否存在历史轨迹;
    147.若不存在,则对所述物流扫描信息进行过滤。
    148.在一个实施例中,分别对所述物流订单信息和所述物流扫描信息解析得到第一运单号和第二运单号;
    149.对所述第一运单号和所述第二运单号进行碰撞,得到碰撞结果;
    150.若所述碰撞结果为第一运单号和所述第二运单号相同,则将所述物流订单信息和所述物流扫描信息进行数据合并,以得到对应的物流运输轨迹;
    151.将所述物流运输轨迹存储至待推送队列。
    152.在一个实施例中,获取所述物流运输轨迹对应的所属业务线;
    153.根据所述所属业务线对所述物流运输轨迹进行分流处理,并将所述物流运输轨迹推送至对应的目标终端,得到推送结果;
    154.当所述推送结果为推送失败时,获取预构建的重推机制,利用所述重推机制将所述物流运输轨迹重推至对应的目标终端;
    155.获取所述重推机制执行的重推次数,并判断所述重推次数是否超过预设的次数阈值;
    156.若是,则标记对应的所述物流运输轨迹为异常记录,并将所述异常记录推送至elk日志中保存。
    157.本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用
    密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
    158.所述领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
    159.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
    160.以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
    转载请注明原文地址:https://tc.8miu.com/read-1479.html

    最新回复(0)