一种投票判定的方法和装置的制造方法

文档序号:9843963阅读:246来源:国知局
一种投票判定的方法和装置的制造方法
【技术领域】
[0001]本发明涉及计算机技术领域,特别地涉及一种投票判定的方法和装置。
【背景技术】
[0002]分布式系统由多个能独立运行的计算机(称为节点)组成。各个节点利用计算机网络进行信息传递,从而实现共同的目标或者任务。在分布式系统中,经常会使用到多条件的判断。所谓多条件判断是针对当前已有的条件,进行判定是否可以进行下一步。当一个系统的某个功能的触发条件是上游的几个系统都进行调用的时候,就需要代码中进行硬编码以完成相应的判断逻辑的编写。
[0003]现有的进行判定的方案一般是由程序编写人员通过硬编码的方式在代码中使用大量的if语句和逻辑运算符来实现相应的判断逻辑,但是如果判断逻辑发生了改变,此时解决问题的唯一方式就是通过重新发布新版本的程序以实现新的判断逻辑。
[0004]采用这种方式将会带来以下问题:第一,在代码中硬编码if判定语句,无法动态改变if语句中的判定内容,故而灵活性很差,可扩展性很弱;第二,大量使用if判定语句,代码的执行效率和可读性太低;第三,判断逻辑全在代码中,非编程人员基本无法理解,增大了编码人员错误理解而出现的风险。
[0005]综上所述,现有的技术方案不够灵活、可扩展性差,且代码执行效率低下,故障查找困难。

【发明内容】

[0006]有鉴于此,本发明提供一种投票判定的方法和装置,可以灵活配置判断逻辑,并将判断逻辑生成相应的二进制位运算逻辑表达式,通过与业务请求对应生成的二进制数字串进行位运算来达到投票判定的目的。能够实现判定逻辑灵活配置可扩展,判定效率高且支持单次判定多次传值的功能,使用方便。
[0007]为实现上述目的,根据本发明的一个方面,提供了一种投票判定的方法。
[0008]—种投票判定的方法,包括:接收并保存客户端发来的判定规则;接收业务系统发送的投票判定请求,并获取所述投票判定请求的参数;将获取的所述参数封装成判定对象;根据所述判定规则执行所述判定对象的判定过程,以得到判定结果。
[0009]可选地,接收并保存客户端发来的判定规则的步骤包括:接收客户端发来的判定规则,并按照预定的逻辑生成判定表达式;将所述判定表达式保存到zookeeper服务器的节点上,并利用zooke印er服务器的监听回调机制实现配置更新。
[0010]可选地,所述判定表达式包括预设的参数字段、第一判定参数和第二判定参数。
[0011]可选地,执行所述判定对象的判定过程的步骤包括:将所述判定对象的参数字段与所述预设的参数字段进行比较,生成所述判定对象的判定参数;将生成的所述判定对象的判定参数与所述第一判定参数进行逻辑运算,以生成第一判定结果;将生成的第一判定结果组成流程判定参数;将所述流程判定参数与所述第二判定参数进行逻辑运算,以得到所述判定结果。
[0012]可选地,所述判定对象的判定参数、所述第一判定参数和所述第二判定参数是二进制的数字串,且所述运算为二进制的位运算。
[0013]可选地,得到判定结果之后,还包括:将所述判定过程的明细信息保存在数据库中,其中,所述明细信息包括判定标识符和判定结果。
[0014]可选地,将获取的所述参数封装成判定对象的步骤包括:根据获取的所述参数判断此次判定是否依赖于之前的判定过程;如果依赖于之前的判定过程,则根据所述参数中包括的判定标识符从所述数据库中获取所述之前的判定过程的明细信息,并与所述参数一起封装成判定对象;如果不依赖于之前的判定过程,则直接将获取的所述参数封装成判定对象。
[0015]根据本发明的另一个方面,提供了一种投票判定的装置。
[0016]一种投票判定的装置,包括:判定设置模块,用于接收并保存客户端发来的判定规贝IJ;参数获取模块,用于接收业务系统发送的投票判定请求,并获取所述投票判定请求的参数;参数封装模块,用于将获取的所述参数封装成判定对象;投票判定模块,用于根据所述判定规则执行所述判定对象的判定过程,以得到判定结果。
[0017]可选地,所述判定设置模块还用于:接收客户端发来的判定规则,并按照预定的逻辑生成判定表达式;将所述判定表达式保存到zoo keeper服务器的节点上,并利用zooke印er服务器的监听回调机制实现配置更新。
[0018]可选地,所述判定表达式包括预设的参数字段、第一判定参数和第二判定参数。
[0019]可选地,所述投票判定模块还用于:将所述判定对象的参数字段与所述预设的参数字段进行比较,生成所述判定对象的判定参数;将生成的所述判定对象的判定参数与所述第一判定参数进行逻辑运算,以生成第一判定结果;将生成的第一判定结果组成流程判定参数;将所述流程判定参数与所述第二判定参数进行逻辑运算,以得到所述判定结果。
[0020]可选地,所述判定对象的判定参数、所述第一判定参数和所述第二判定参数是二进制的数字串,且所述运算为二进制的位运算。
[0021 ]可选地,还包括:明细保存模块,用于在得到判定结果之后,将所述判定过程的明细信息保存在数据库中,其中,所述明细信息包括判定标识符和判定结果。
[0022]可选地,所述参数封装模块还用于:根据获取的所述参数判断此次判定是否依赖于之前的判定过程;如果依赖于之前的判定过程,则根据所述参数中包括的判定标识符从所述数据库中获取所述之前的判定过程的明细信息,并与所述参数一起封装成判定对象;如果不依赖于之前的判定过程,则直接将获取的所述参数封装成判定对象。
[0023]根据本发明的技术方案,通过可视化界面可以灵活配置判断逻辑,并将判断逻辑生成相应的二进制位运算逻辑表达式,再与业务请求参数对应生成的二进制数字串进行位运算来达到投票判定的目的。通过在可视化的界面上配置不同的判定规则,可动态配置不同的判定逻辑,且判定逻辑与代码解耦,修改后无需重启业务服务或者重新上线,从而实现了判定逻辑灵活配置可扩展;同时,判定逻辑基于位运算、布尔运算等逻辑运算方式实现,判定效率高且支持单次判定多次传值的功能,使用方便。
【附图说明】
[0024]附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
[0025]图1是根据本发明实施例的一种投票判定的方法的主要步骤示意图;
[0026]图2是根据本发明实施例的一种投票判定的装置的主要模块示意图;
[0027]图3是根据本发明实施例的投票判定系统的整体架构图;
[0028]图4是根据本发明实施例的判定规则设置界面示意图;
[0029]图5是根据本发明实施例的投票判定过程的流程图。
【具体实施方式】
[0030]以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识至IJ,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0031]图1是根据本发明实施例的一种投票判定的方法的主要步骤示意图。如图1所示,本发明的投票判定的方法主要包括如下的步骤Sll至步骤S14。
[0032]步骤Sll:接收并保存客户端发来的判定规则;
[0033]步骤S12:接收业务系统发送的投票判定请求,并获取该投票判定请求的参数;
[0034]步骤SI3:将获取的参数封装成判定对象;
[0035]步骤S
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1