一种规则文件的更新方法和设备的制造方法_2

文档序号:9667694阅读:来源:国知局
发明实施例中,规则文件更新可以包括规则文件新增、删除、或修改。当Web服务器监听到规则文件更新事件发生时,可以获取更新后的规则文件。
[0046]举例来说,若规则文件更新为修改规则文件,该更新后的规则文件可以为根据修改需求对原有规则文件进行修改后的规则文件;若规则文件更新为删除规则文件,该更新后的规则文件可以为根据删除需求对原有规则文件进行删除后的规则文件;若规则文件更新为新增规则文件,该更新后的规则文件可以为原有规则文件以及新增的规则文件。
[0047]步骤202、清除当前备份引擎中的规则对象,并将更新后的规则文件加载到当前备份引擎中以构建对应的规则对象。
[0048]本发明实施例中,为了避免规则文件的更新对当前正在处理的业务逻辑产生影响,设置了工作引擎和备份引擎。当Web服务器接收到HTTP请求时,通过工作引擎对该HTTP请求进行检测。
[0049]当Web服务器确定需要进行规则文件更新,并获取到更新后的规则文件时,Web服务器可以对备份引擎进行规则文件更新,而不直接对工作引擎进行规则文件更新,从而保证了不会由于规则文件更新间断工作引擎正在处理的业务逻辑。
[0050]具体的,Web服务器获取到更新后的规则文件后,可以首先清除当前备份引擎中的规则对象,然后将更新后的规则文件加载到该当前备份引擎中以构建对应的规则对象,从而实现了针对当前备份引擎的规则文件更新。
[0051]步骤203、将当前备份引擎切换为工作引擎,并将规则文件更新前的工作引擎切换为备份引擎。
[0052]本发明实施例中,Web服务器完成了针对当前备份引擎的规则文件更新之后,可以将当前备份引擎切换为工作引擎,并将规则文件更新前的工作引擎切换为备份引擎,从而使得Web服务器接收到HTTP请求时,可以通过规则文件更新后的工作引擎对根据更新后的规则对象对该HTTP请求进行检测。
[0053]其中,若规则更新前的工作引擎切换为备份引擎时正在处理业务逻辑,则该工作引擎切换为备份引擎后,可以对当前正在处理的业务逻辑进行处理,并在处理完该业务逻辑后,在下一次切换前,不再处理业务逻辑。
[0054]步骤204、当接收到HTTP请求检测请求时,根据切换后的工作引擎中的规则对象对该HTTP请求进行检测。
[0055]本发明实施例中,完成工作引擎和备份引擎的切换后,当接收到HTTP请求时,可以将该HTTP请求转发给切换后的工作引擎,从而能根据切换后的工作引擎中的规则对象对该HTTP请求进行监测。
[0056]举例来说,本发明实施例中,可以将规则引擎分解为工作引擎管理器、工作引擎,以及备份引擎,其中:
[0057]引擎管理器用于作为工作引擎指针,即引擎管理器指向的引擎为工作引擎。
[0058]当需要进行规则文件更新时,Web服务器可以通过升级线程获取更新后的规则文件,清除当前备份引擎中的规则对象,并将更新后的规则文件加载到当前备份引擎中以构建对应的规则对象。
[0059]升级进程完成针对当前备份引擎的规则文件更新后,可以触发引擎管理器指向当前备份引擎,即将当前备份引擎切换为工作引擎,将规则文件更新前的工作引擎切换为备份引擎。
[0060]当工作进程接收到HTTP请求检测请求时,通过引擎管理器将该HTTP请求转发给规则文件更新后的工作引擎,以使规则文件更新后的工作引擎对该HTTP请求进行检测,其示意图可以如图3所示。
[0061]如图4所示,为本发明实施例提供的另一种规则文件更新方法的流程示意图,可以包括以下步骤:
[0062]步骤401、当需要进行规则文件更新时,判断该规则文件更新是否为新增规则文件。若判断为是,转至步骤402 ;否则,转至步骤407。
[0063]本发明实施例中,规则文件更新可以包括规则文件新增、删除、或修改。当Web服务器监听到规则文件更新事件发生时,可以首先判断该规则文件更新是否为新增规则文件。
[0064]步骤402、判断当前工作引擎中规则对象的组织形式是否为指定形式。若判断为是,转至步骤403 ;否则,转至步骤407。
[0065]本发明实施例中,工作引擎中规则对象的组织形式可以为树型、Hash型、Map型坐寸。
[0066]当确定需要进行规则文件更新,且该规则文件更新为新增规则文件时,可以进一步判断工作引擎中规则对象的组织形式是否为指定形式。若该工作引擎中规则对象的组织形式是指定形式时,表明可以直接在该工作引擎中插入新增的规则文件对应的规则对象,即对于新增规则文件,可以不需要将工作引擎中的规则对象删除后,重新构建更新后的规则文件对应的规则对象;否则,表明不可以直接在该工作引擎中插入新增的规则文件对应的规则对象,即对于新增规则文件,需要先将工作引擎中的规则对象删除后,重新构建更新后的规则文件对应的规则对象。
[0067]其中,上述指定形式可以为Hash型。
[0068]步骤403、将新增的规则对象构建为对应的规则对象,并保存到规则缓存队列中。
[0069]本发明实施例中,当规则文件更新为新增规则文件,且工作引擎中规则对象的组织形式为指定形式(如Hash型)时,Web服务器确定可以通过规则对象插入的方式将新增的规则文件对应的规则对象加入到工作引擎中,因而,Web服务器可以将新增的规则对象构建为对应的规则对象,并保存到规则缓存队列中。
[0070]步骤404、判断当前工作引擎是否正在处理业务逻辑。若判断为是,转至步骤405 ;否则,转至步骤406。
[0071]步骤405、在当前工作引擎处理完成业务逻辑时,将规则缓存队列中的规则对象插入到当前工作引擎中。
[0072]步骤406、将规则缓存队列中的规则对象插入到当前工作引擎中。
[0073]本发明实施例中,Web服务器将新增的规则文件对应的规则对象保存到规则缓存队列中后,可以在当前工作引擎中正在处理的业务逻辑处理完成时,将规则缓存队列中的规则对象插入到当前工作引擎中,以避免规则对象的更新间断当前正在处理的业务逻辑。
[0074]步骤407、获取更新后的规则文件。
[0075]本发明实施例中,若规则文件更新不是新增规则文件,或规则文件更新为新增规则文件,但当前工作引擎中规则对象的组织形式不是指定形式时,可以获取更新后的规则文件。
[0076]举例来说,若规则文件更新为修改规则文件,该更新后的规则文件可以为根据修改需求对原有规则文件进行修改后的规则文件;若规则文件更新为删除规则文件,该更新后的规则文件可以为根据删除需求对原有规则文件进行删除后的规则文件;若规则文件更新为新增规则文件,该更新后的规则文件可以为原有规则文件以及新增的规则文件。
[0077]步骤408、清除当前备份引擎中的规则对象,并将该更新后的规则文件加载到该当前备份引擎中以构建对应的规则对象。
[0078]本发明实施例中,为了避免规则文件的更新对当前正在处理的业务逻辑产生影响,设置了工作引擎和备份引擎。当Web服务器接收到HTTP请求时,通过工作引擎对该HTTP请求进行检测。
[0079]当Web服务器确定需要进行规则文件更新,并获取到更新后的规则文件时,Web服务器可以对备份引擎进行规则文件更新,而不直接对工作引擎进行规则文件更新,从而保证了不会由于规则文件更新间断工作引擎正在处理的业务逻辑。
[0080]具体的,Web服务器获取到更新后的规则文件后,可以首先清除当前备份引擎中的规则对象,然后将更新后的规则文件加载到该当前备份引擎中以构建对应的规则对象,从而实现了针对当前备份引擎的规则文件更新。
[0081]步骤409、将当前备份引擎切换为工作引擎,并将规则文件更新前的工作引擎切换为备份引擎。
[0082]本发明实施例中,Web服务器完成了针对当前备份引擎的规则文件更新之后,可以将当前备份引擎切换为工作引擎,并将规则文件更新前的工作引擎切换为备份引擎,从而使得Web服务器接收到HTTP请求时,可以通过规则文件更新后的工作引擎对根据更新后的规则对象对该HTTP请求进行检测。
[0083]其中,若规则更新前的工作引擎切换为备份引擎时正在处理业务逻辑,则该工作引擎切换为备份引擎后,可以对当前正在处理的业务逻辑进行处理,并在处理完该业务逻辑后,在下一次切换前,不再处理业务逻辑。
[0084]举例来说,本发明实施例中,可以将规则引擎分解为工作引擎管理器、工作引擎,以及备份引擎,其中:
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1