一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于ZooKeeper分布式队列的工单接收方法与流程

2022-06-08 18:37:34 来源:中国专利 TAG:

一种基于zookeeper分布式队列的工单接收方法
技术领域
1.本发明的实施例一般涉及业务开通领域,并且更具体地,涉及一种基于zookeeper分布式队列的工单接收方法。


背景技术:

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


技术实现要素:

3.根据本发明的实施例,提供了一种基于zookeeper分布式队列的工单接收方案。
4.在本发明的第一方面,提供了一种基于zookeeper分布式队列的工单接收方法。该方法包括:
5.s101:当启动收单模块时,判断zookeeper是否存在队列节点,如果是,则执行s102;否则创建队列节点;
6.s102:接收工单,解析所述工单中的业务数据,存储在es内存数据库中,在所述队列节点下创建临时有序节点作为子节点,记录工单流水号和流程编码,并生成临时有序节点的顺序号;
7.s103:通过getchildren函数获取所述队列节点的子节点列表,判断当前创建的子节点的顺序号是否为队列节点中子节点的最小顺序号,如果是,则读取所述子节点的工单流水号和流程编码,调用编排引擎执行工单流程;否则监听小于当前子节点顺序号的前一个子节点的变动通知;
8.s104:当所述工单流程执行结束后,删除对应的子节点。
9.进一步地,当监听到小于当前子节点顺序号的前一个子节点的变动通知时,重新执行s103。
10.进一步地,当子节点时间信息被修改时触发生成变动通知。
11.进一步地,所述子节点列表用于记录所述队列节点下创建的临时有序节点信息,包括工单流水号、流程编码和顺序号。
12.在本发明的第二方面,提供了一种基于zookeeper分布式队列的工单接收装置。该装置包括:
13.第一判断模块,用于当启动收单模块时,判断zookeeper是否存在队列节点,如果是,则调用收单模块;否则创建队列节点;
14.收单模块,用于接收工单,解析所述工单中的业务数据,存储在es内存数据库中,在所述队列节点下创建临时有序节点作为子节点,记录工单流水号和流程编码,并生成临时有序节点的顺序号;
15.第二判断模块,用于通过getchildren函数获取所述队列节点的子节点列表,判断当前创建的子节点的顺序号是否为队列节点中子节点的最小顺序号,如果是,则读取所述子节点的工单流水号和流程编码,调用编排引擎执行工单流程;否则调用监听模块;
16.删除模块,用于当所述工单流程执行结束后,删除对应的子节点。
17.进一步地,所述监听模块,用于监听变动模块生成的小于当前子节点顺序号的前一个子节点的变动通知,当监听到小于当前子节点顺序号的前一个子节点的变动通知时,重新调用第二判断模块。
18.进一步地,所述变动模块,用于当子节点时间信息被修改时触发生成变动通知。
19.进一步地,所述子节点列表用于记录所述队列节点下创建的临时有序节点信息,包括工单流水号、流程编码和顺序号。
20.在本发明的第三方面,提供了一种电子设备。该电子设备包括:存储器和处理器,所述存储器上存储有计算机程序,所述处理器执行所述程序时实现如以上所述的方法。
21.在本发明的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如根据本发明的第一方面的方法。
22.应当理解,发明内容部分中所描述的内容并非旨在限定本发明的实施例的关键或重要特征,亦非用于限制本发明的范围。本发明的其它特征将通过以下的描述变得容易理解。
23.本发明通过创建队列节点的子节点,定义了根据子节点的顺序执行流程,解决了高并发接收工单状态下工单接收效率低的问题,提高了业务开通效率,降低了业务开通失败率,节省了服务器硬件成本。
附图说明
24.结合附图并参考以下详细说明,本发明各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:
25.图1示出了根据本发明的实施例的基于zookeeper分布式队列的工单接收方法的流程图;
26.图2示出了根据本发明的实施例的基于zookeeper分布式队列的工单接收装置的方框图;
27.图3示出了能够实施本发明的实施例的示例性电子设备的方框图。
具体实施方式
28.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本发明保护的范围。
29.另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
30.本发明中,通过创建队列节点的子节点,定义了根据子节点的顺序执行流程,解决
了高并发接收工单状态下工单接收效率低的问题,提高了业务开通效率,降低了业务开通失败率,节省了服务器硬件成本。
31.图1示出了本发明实施例的基于zookeeper分布式队列的工单接收方法的流程图。
32.该方法包括:
33.s101:当启动收单模块时,判断zookeeper是否存在队列节点,如果是,则执行s102;否则创建队列节点。
34.所述队列节点用于存储队列信息并创建子节点,例如wsqueue节点。
35.zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,是google的chubby一个开源的实现,是hadoop和hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
36.在开始启动收单模块时,需要判断zookeeper中是否存在队列节点,因为需要通过队列节点进行创建各个子节点,故如果启动收单模块时,zookeeper钟无队列节点,则需要首先创建队列节点。如果已存在队列节点,则无需再次创建。
37.s102:接收工单,解析所述工单中的业务数据,存储在es内存数据库中,在所述队列节点下创建临时有序节点作为子节点,记录工单流水号和流程编码,并生成临时有序节点的顺序号。
38.es内存数据库是一种非关系型数据库。es是elasticsearch的简称。es数据库是一个高扩展、开源的全文检索和分析引擎,它可以准实时地快速存储、搜索、分析海量的数据。
39.当收单模块接收到工单时,解析工单中的业务数据,将业务数据存储到es数据库中,每接收到一工单时,在队列节点中创建临时有序节点作为该工单对应的子节点。记录工单流水号workid和流程编码flowid。每个子节点都对应一个顺序号,每个顺序号的子节点都对应唯一的工单流水号wordid和流程编码flowid。顺序号根据子节点的创建顺序进行排序。
40.s103:通过getchildren函数获取所述队列节点的子节点列表,判断当前创建的子节点的顺序号是否为队列节点中子节点的最小顺序号,如果是,则读取所述子节点的工单流水号和流程编码,调用编排引擎执行工单流程;否则监听小于当前子节点顺序号的前一个子节点的变动通知。
41.当监听到小于当前子节点顺序号的前一个子节点的变动通知时,重新判断当前创建的子节点顺序号是否为队列节点中子节点的最小顺序号。变动通知是子节点的时间信息修改触发的,即当子节点时间信息被修改时触发生成变动通知。如果子节点执行结束,被删除后,会更新修改子节点的时间信息。
42.getchildren函数能够检索出队列节点中生成的子节点列表,所述子节点列表用于记录所述队列节点下创建的临时有序节点信息,包括工单流水号、流程编码和顺序号。
43.s104:当所述工单流程执行结束后,删除对应的子节点。
44.在子节点对应的工单流程执行结束后,将对应子节点删除,同时更新时间信息。
45.根据本发明的实施例,通过创建队列节点的子节点,定义了根据子节点的顺序执行流程,解决了高并发接收工单状态下工单接收效率低的问题,提高了业务开通效率,降低了业务开通失败率,节省了服务器硬件成本。
46.需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列
的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本发明所必须的。
47.以上是关于方法实施例的介绍,以下通过装置实施例,对本发明所述方案进行进一步说明。
48.如图2所示,装置200包括:
49.第一判断模块210,用于当启动收单模块时,判断zookeeper是否存在队列节点,如果是,则调用收单模块;否则创建队列节点。
50.收单模块220,用于接收工单,解析所述工单中的业务数据,存储在es内存数据库中,在所述队列节点下创建临时有序节点作为子节点,记录工单流水号和流程编码,并生成临时有序节点的顺序号。
51.所述子节点列表用于记录所述队列节点下创建的临时有序节点信息,包括工单流水号、流程编码和顺序号。
52.第二判断模块230,用于通过getchildren函数获取所述队列节点的子节点列表,判断当前创建的子节点的顺序号是否为队列节点中子节点的最小顺序号,如果是,则读取所述子节点的工单流水号和流程编码,调用编排引擎执行工单流程;否则调用监听模块。
53.删除模块240,用于当所述工单流程执行结束后,删除对应的子节点。
54.监听模块250,用于监听变动模块生成的小于当前子节点顺序号的前一个子节点的变动通知,当监听到小于当前子节点顺序号的前一个子节点的变动通知时,重新调用第二判断模块。
55.所述装置200,还包括变动模块260,用于当子节点时间信息被修改时触发生成变动通知。
56.本装置通过创建队列节点的子节点,定义了根据子节点的顺序执行流程,解决了高并发接收工单状态下工单接收效率低的问题,提高了业务开通效率,降低了业务开通失败率,节省了服务器硬件成本。
57.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,所述描述的模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
58.如图3所示,设备包括中央处理单元(cpu),其可以根据存储在只读存储器(rom)中的计算机程序指令或者从存储单元加载到随机访问存储器(ram)中的计算机程序指令,来执行各种适当的动作和处理。在ram中,还可以存储设备操作所需的各种程序和数据。cpu、rom以及ram通过总线彼此相连。输入/输出(i/o)接口也连接至总线。
59.设备中的多个部件连接至i/o接口,包括:输入单元,例如键盘、鼠标等;输出单元,例如各种类型的显示器、扬声器等;存储单元,例如磁盘、光盘等;以及通信单元,例如网卡、调制解调器、无线通信收发机等。通信单元允许设备通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
60.处理单元执行上文所描述的各个方法和处理,例如方法s101~s104。例如,在一些实施例中,方法s101~s104可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元。在一些实施例中,计算机程序的部分或者全部可以经由rom和/或通信单元
而被载入和/或安装到设备上。当计算机程序加载到ram并由cpu执行时,可以执行上文描述的方法s101~s104的一个或多个步骤。备选地,在其他实施例中,cpu可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行方法s101~s104。
61.本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)等等。
62.用于实施本发明的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
63.在本发明的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
64.此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本发明的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。
65.尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献