一种基于ZooKeeper分布式队列的工单接收方法技术

技术编号:33718104 阅读:31 留言:0更新日期:2022-06-08 21:08
本发明专利技术的实施例提供了一种基于ZooKeeper分布式队列的工单接收方法。所述方法包括当启动收单模块时,如果ZooKeeper存在队列节点,接收工单,解析业务数据,在队列节点下创建临时有序节点作为子节点,记录工单流水号和流程编码,生成临时有序节点的顺序号;如果当前创建的子节点的顺序号为最小顺序号,则读取子节点的工单流水号和流程编码,调用编排引擎执行工单流程;当工单流程执行结束后,删除对应的子节点。本发明专利技术通过创建队列节点的子节点,定义了根据子节点的顺序执行流程,解决了高并发接收工单状态下工单接收效率低的问题,提高了业务开通效率,降低了业务开通失败率,节省了服务器硬件成本。务器硬件成本。务器硬件成本。

【技术实现步骤摘要】
一种基于ZooKeeper分布式队列的工单接收方法


[0001]本专利技术的实施例一般涉及业务开通领域,并且更具体地,涉及一种基于ZooKeeper分布式队列的工单接收方法。

技术介绍

[0002]在当前5G网络的应用越来越多的情况下,业务开通的工单越来越多。量级的提升带来了高并发引起的服务器性能的问题,从而造成开通失败率的提升和开通效率的降低。通过对服务器硬件和数量提升来解决问题不是长久之计。编排系统工单由于高并发造成业务开通失败率上升,开通效率下降,同时服务器硬件成本增加。

技术实现思路

[0003]根据本专利技术的实施例,提供了一种基于ZooKeeper分布式队列的工单接收方案。
[0004]在本专利技术的第一方面,提供了一种基于ZooKeeper分布式队列的工单接收方法。该方法包括:
[0005]S101:当启动收单模块时,判断ZooKeeper是否存在队列节点,如果是,则执行S102;否则创建队列节点;
[0006]S102:接收工单,解析所述工单中的业务数据,存储在ES内存数据库中,在所述队列节点下创建临时有序节点作为子节点,记录工单流水号和流程编码,并生成临时有序节点的顺序号;
[0007]S103:通过getchildren函数获取所述队列节点的子节点列表,判断当前创建的子节点的顺序号是否为队列节点中子节点的最小顺序号,如果是,则读取所述子节点的工单流水号和流程编码,调用编排引擎执行工单流程;否则监听小于当前子节点顺序号的前一个子节点的变动通知;
>[0008]S104:当所述工单流程执行结束后,删除对应的子节点。
[0009]进一步地,当监听到小于当前子节点顺序号的前一个子节点的变动通知时,重新执行S103。
[0010]进一步地,当子节点时间信息被修改时触发生成变动通知。
[0011]进一步地,所述子节点列表用于记录所述队列节点下创建的临时有序节点信息,包括工单流水号、流程编码和顺序号。
[0012]在本专利技术的第二方面,提供了一种基于ZooKeeper分布式队列的工单接收装置。该装置包括:
[0013]第一判断模块,用于当启动收单模块时,判断ZooKeeper是否存在队列节点,如果是,则调用收单模块;否则创建队列节点;
[0014]收单模块,用于接收工单,解析所述工单中的业务数据,存储在ES内存数据库中,在所述队列节点下创建临时有序节点作为子节点,记录工单流水号和流程编码,并生成临时有序节点的顺序号;
[0015]第二判断模块,用于通过getchildren函数获取所述队列节点的子节点列表,判断当前创建的子节点的顺序号是否为队列节点中子节点的最小顺序号,如果是,则读取所述子节点的工单流水号和流程编码,调用编排引擎执行工单流程;否则调用监听模块;
[0016]删除模块,用于当所述工单流程执行结束后,删除对应的子节点。
[0017]进一步地,所述监听模块,用于监听变动模块生成的小于当前子节点顺序号的前一个子节点的变动通知,当监听到小于当前子节点顺序号的前一个子节点的变动通知时,重新调用第二判断模块。
[0018]进一步地,所述变动模块,用于当子节点时间信息被修改时触发生成变动通知。
[0019]进一步地,所述子节点列表用于记录所述队列节点下创建的临时有序节点信息,包括工单流水号、流程编码和顺序号。
[0020]在本专利技术的第三方面,提供了一种电子设备。该电子设备包括:存储器和处理器,所述存储器上存储有计算机程序,所述处理器执行所述程序时实现如以上所述的方法。
[0021]在本专利技术的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如根据本专利技术的第一方面的方法。
[0022]应当理解,
技术实现思路
部分中所描述的内容并非旨在限定本专利技术的实施例的关键或重要特征,亦非用于限制本专利技术的范围。本专利技术的其它特征将通过以下的描述变得容易理解。
[0023]本专利技术通过创建队列节点的子节点,定义了根据子节点的顺序执行流程,解决了高并发接收工单状态下工单接收效率低的问题,提高了业务开通效率,降低了业务开通失败率,节省了服务器硬件成本。
附图说明
[0024]结合附图并参考以下详细说明,本专利技术各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:
[0025]图1示出了根据本专利技术的实施例的基于ZooKeeper分布式队列的工单接收方法的流程图;
[0026]图2示出了根据本专利技术的实施例的基于ZooKeeper分布式队列的工单接收装置的方框图;
[0027]图3示出了能够实施本专利技术的实施例的示例性电子设备的方框图。
具体实施方式
[0028]为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本专利技术保护的范围。
[0029]另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
[0030]本专利技术中,通过创建队列节点的子节点,定义了根据子节点的顺序执行流程,解决
了高并发接收工单状态下工单接收效率低的问题,提高了业务开通效率,降低了业务开通失败率,节省了服务器硬件成本。
[0031]图1示出了本专利技术实施例的基于ZooKeeper分布式队列的工单接收方法的流程图。
[0032]该方法包括:
[0033]S101:当启动收单模块时,判断ZooKeeper是否存在队列节点,如果是,则执行S102;否则创建队列节点。
[0034]所述队列节点用于存储队列信息并创建子节点,例如wsqueue节点。
[0035]ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
[0036]在开始启动收单模块时,需要判断ZooKeeper中是否存在队列节点,因为需要通过队列节点进行创建各个子节点,故如果启动收单模块时,ZooKeeper钟无队列节点,则需要首先创建队列节点。如果已存在队列节点,则无需再次创建。
[0037]S102:接收工单,解析所述工单中的业务数据,存储在ES内存数据库中,在所述队列节点下创建临时有序节点作为子节点,记录工单流水号和流程编码,并生成临时有序节点的顺序号。
[0038]ES本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于ZooKeeper分布式队列的工单接收方法,其特征在于,包括:S101:当启动收单模块时,判断ZooKeeper是否存在队列节点,如果是,则执行S102;否则创建队列节点;S102:接收工单,解析所述工单中的业务数据,存储在ES内存数据库中,在所述队列节点下创建临时有序节点作为子节点,记录工单流水号和流程编码,并生成临时有序节点的顺序号;S103:通过getchildren函数获取所述队列节点的子节点列表,判断当前创建的子节点的顺序号是否为队列节点中子节点的最小顺序号,如果是,则读取所述子节点的工单流水号和流程编码,调用编排引擎执行工单流程;否则监听小于当前子节点顺序号的前一个子节点的变动通知;S104:当所述工单流程执行结束后,删除对应的子节点。2.根据权利要求1所述的方法,其特征在于,当监听到小于当前子节点顺序号的前一个子节点的变动通知时,重新执行S103。3.根据权利要求2所述的方法,其特征在于,当子节点时间信息被修改时触发生成变动通知。4.根据权利要求1所述的方法,其特征在于,所述子节点列表用于记录所述队列节点下创建的临时有序节点信息,包括工单流水号、流程编码和顺序号。5.一种基于ZooKeeper分布式队列的工单接收装置,其特征在于,包括:第一判断模块,用于当启动收单模块时,判断ZooKeeper是否存在队列节点,如果是,则调用收单模块;否则创建队列节...

【专利技术属性】
技术研发人员:孟金斗
申请(专利权)人:中盈优创资讯科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1