基于银行家算法的政务系统待办功能优化方法及终端与流程

文档序号:17894145发布日期:2019-06-13 15:52阅读:703来源:国知局
基于银行家算法的政务系统待办功能优化方法及终端与流程

本发明涉及资源分配优化技术领域,具体地,涉及一种基于银行家算法的政务系统待办功能优化方法及终端。



背景技术:

一般的政务系统都有待办功能,而且客户为提高办事效率,对待办的实时性要求也很高。传统的待办实现方式是将待办数据保存到数据库中,前端每隔1秒向后端请求数据,如果前端数量较多,容易导致系统大量资源被待办功能占用,而待办本身并不是核心业务。

政务系统中因为存在并联审批的业务,即两个业务存在关联,需要同时处理。这就导致待办之间存在关联,增加了处理难度。

现有的常用解决方法是将待办数据从数据库转移到redis当中,利用redis数据库读取较快的特点提高相应前端请求的速度。但是存在如下问题:

1、redis是基于内存的,资源有限,存储的数据量并没有传统数据库大。如果待办数据全部转移进来,容易导致服务效率降低,甚至服务崩溃。

2、为保证redis服务稳定,控制redis中待办的数据数量。在处理并联审批的业务时,因为待办之间存在关联,a待办和b待办需要同时处理,此时a待办在redis中,b待办因为数量限制没有进来,而redis数量又存满时,系统就会出现资源互斥,业务无法继续进行。

目前没有发现同本发明类似技术的说明或报道,也尚未收集到国内外类似的资料。



技术实现要素:

本发明针对现有技术中存在的上述不足,提供了一种基于银行家算法的政务系统待办功能优化方法及终端。该方法及终端将redis数据库和银行家算法结合,在保证服务的稳定和高效的同时,解决了因资源有限导致的互斥问题。

本发明是通过以下技术方案实现的。

根据本发明的一个方面,提供了一种基于银行家算法的政务系统待办功能优化方法,包括如下步骤:

s1:在系统数据库中设置每一条待办的属性数据,包括待办名称、待办事项、待办的处理人员、待办的占用资源数以及待办的优先级;逐条计算当前待办的优先级和占用资源数;

s2:结合待办的优先级情况和redis数据库资源剩余情况,将s1中计算过后的待办从先到后,依次从系统数据库中转移到redis数据库中;在待办的转移过程中,采用银行家算法避免redis数据库资源产生互斥错误;

s3,判断待办是否为并联审批件:

如果是,则按照以下步骤执行:

在处理并联审批的待办a时,如果关联的待办b还未转移到redis数据库中,采用临时调度机制,将redis数据库资源分配给待办b,让待办b转移到redis数据库中,与待办a同时处理;

如果不是,则直接处理;

s4:待办在处理完成后,释放redis数据库资源。

优选地,所述s1中,待办的优先级由高到低分为高级、中级和低级;对待办的优先级设定的原则为:

对于待办的处理人员不在线的待办,其优先级设置为低级;

对于待办的处理人员在线的待办,其优先级设置为中级;

对于待办的处理人员在线且待办事项中设定了特殊事项的待办,其优先级设置为高级;

当待办的处理人员临时下线,及时释放redis数据库中与该处理人员相关的资源,并将系统数据库中还未转移的与该处理人员相关的待办的优先级降为低级;

当有新的待办的处理人员上线,将系统数据库中与该处理人员相关的待办的优先级调整为中级或高级。

优选地,所述s1中,一条待办的占用资源数默认为1;当待办为并联审批的待办时,根据关联的其他待办数量n,此时待办的占用资源数为1+n。

优选地,所述s2中,redis数据库资源剩余情况根据redis数据库资源上限和已使用的redis数据库资源计算得到;其中,redis数据库资源上限的计算方法为:

设置redis数据存储上限g,然后除以一条待办的数据量大小k,计算得到redis数据库能够存储的待办数量n,并预留待办数量余量,得到redis数据库能够存储的最大待办数量,即为redis数据库资源上限。

优选地,所述redis数据存储上限g根据服务器物理内存的大小和其他应用的占用情况设置。

优选地,所述s2中,在待办的转移过程中,采用银行家算法避免redis数据库资源产生互斥错误的方法具体为:

为每一个待办初始化需求矩阵,用以表示待办还需要的资源数量;优选地,当待办不属于并联审批的待办时,待办还需要的资源数量设为0;

在处理redis数据库中的待办过程中,实时计算当前redis数据库剩余的资源数量;

在将并联审批的待办存储到redis数据库中时,将后续需要的资源提前占用,申请占用的资源为1+n;当redis数据库的剩余资源数量只有m,且m≤1+n时,待办不能转移到redis数据库中。

根据本发明的另一个方面,提供了一种终端,包括存储器、处理器及存储在存储器上并能够在处理器上运行的计算机程序,所述处理器执行所述计算机程序时能够用于执行上述方法。

与现有技术相比,本发明具有如下的有益效果:

本发明所提供的基于银行家算法的政务系统待办功能优化方法及终端,将redis数据库和银行家算法结合;在redis数据库使用上,设置待办存放量上限,让redis数据库在资源最优的情况下运行,保证服务的稳定和高效;同时,利用银行家算法避免死锁的特性,解决因redis数据库资源有限导致的互斥问题。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为本发明所提供的基于银行家算法的政务系统待办功能优化方法流程图;

图2为本发明一实施例中redis数据库资源使用控制示意图。

具体实施方式

下面对本发明的实施例作详细说明:本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。

实施例

本实施例提供了一种基于银行家算法的政务系统待办功能优化方法,如图1所示,包括如下步骤:

s1:在系统数据库中设置每一条待办的属性数据,包括待办名称、待办事项、待办的处理人员、待办的占用资源数以及待办的优先级;逐条计算当前待办的优先级和占用资源数;

s2:结合待办的优先级情况和redis数据库资源剩余情况,将s1中计算过后的待办从先到后,依次从系统数据库中转移到redis数据库中;在待办的转移过程中,采用银行家算法保证redis数据库资源不会出现互斥的错误;

s3,判断待办是否为并联审批件:

如果是,则按照以下步骤执行:

在处理并联审批的待办a时,如果关联的待办b还未转移到redis数据库中,采用临时调度机制,将redis数据库资源分配给待办b,让待办b转移到redis数据库中,与待办a同时处理;

如果不是,则直接处理;

s4:待办在处理完成后,释放redis数据库资源。

进一步地,所述s1中,待办的优先级由高到低分为高级、中级和低级;对待办的优先级设定的原则为:

对于待办的处理人员不在线的待办,其优先级设置为低级;

对于待办的处理人员在线的待办,其优先级设置为中级;

对于待办的处理人员在线且待办事项中设定了特殊事项的待办,其优先级设置为高级;

当待办的处理人员临时下线,及时释放redis数据库中与该处理人员相关的资源,并将系统数据库中还未转移的与该处理人员相关的待办的优先级降为低级;

当有新的待办的处理人员上线,将系统数据库中与该处理人员相关的待办的优先级调整为中级或高级。

进一步地,所述s1中,一条待办的占用资源数默认为1;当待办为并联审批的待办时,根据关联的其他待办数量n,此时待办的占用资源数为1+n。

进一步地,如图2所示,所述s2中,redis数据库资源剩余情况根据redis数据库资源上限和已使用的redis数据库资源计算得到;其中,redis数据库资源上限的计算方法为:

设置redis数据存储上限g,然后除以一条待办数据量的大小k,计算得到redis数据库能够存储的待办数量n,并预留待办数量余量,得到redis数据库能够存储的最大待办数量,即为redis数据库资源上限。

进一步地,所述redis数据存储上限g根据服务器物理内存的大小和其他应用的占用情况设置。

进一步地,所述s2中,在待办的转移过程中,采用银行家算法保证redis数据库资源不会出现互斥的错误的方法具体为:

系统为每一个待办初始化好需求矩阵,用以表示待办还需要的资源数量;如果是非并联审批的待办,这个数量为0;

在处理redis数据库中的待办过程中,实时计算当前redis数据库剩余的资源数量;

在将并联审批的待办存储到redis数据库中时,将后续需要的资源提前占用,申请占用的资源为1+n;如果出现redis数据库的剩余资源数量只有m,不满足m>1+n时,此时不可将待办转移到redis数据库中;系统还可以根据以上数据信息,通过显示模块提示,“当前资源不满足,无法处理此待办,需等待”。

在本实施例中:

在redis使用上,根据服务器物理内存的大小和其他应用的占用情况,设置数据存储上限g;然后除以单条待办的数据量大小k,计算可以存储的待办条数上限n,同时需要留有一定的余量,避免是因平均值的估算导致的偏差问题,得到redis数据库资源上限。

在待办的设计上,需要兼顾到:

1:待办的前后关联关系,即一条待办需要申请的redis数据库资源。默认情况下一条待办的占用资源数为1,当为并联审批的待办时,根据关联其他待办数量,设置占用资源数。如果关联其他待办数量为n,则为并联审批的待办占用资源数为1+n。

2:待办的优先级由高到低分为高级、中级和低级。对于待办的处理人员不在线的,设置为低级,此类待办一旦占用到redis数据库资源,将无法释放;对于待办的处理人员在线的设置为中级;对于待办的处理人员在线且待办事项设定了特殊事项(例如被处理人员为残疾人、军官等)的设置为高级。

待办的属性数据包含:待办名称、待办事项、待办的处理人员、待办的占用资源数以及待办的优先级。

待办事项中的特殊事项可以根据需求人为设定。

具体实施步骤中:

先在系统数据库中,根据待办的处理人员是否在线和待办事项,逐条计算系统中当前待办的优先级和占用资源数。

将计算过后的待办,结合优先级情况、redis数据库资源剩余情况,从先到后,依次从系统数据库中转移到redis数据库中。在转移过程中,使用银行家算法保证redis数据库资源不会出现互斥的错误。

在处理并联审批的待办a时,如果关联的待办b还没有进redis数据库,系统需要临时调度,将redis数据库资源分配给待办b,让待办b进redis数据库,与待办a同时处理。

待办在处理完成后,释放redis数据库资源。

当待办的处理人员临时下线,需要及时释放redis数据库中与其相关的资源,并且将系统数据库中还未转移过的待办优先级降为低级;当有新的处理人员上线,需要将系统数据库中与其相关的待办优先级调整为中级或高级。

本实施例同时提供了一种终端,包括存储器、处理器及存储在存储器上并能够在处理器上运行的计算机程序,所述处理器执行所述计算机程序时能够用于执行上述方法。

本发明上述实施例中所提供的基于银行家算法的政务系统待办功能优化方法及终端,将redis数据库和银行家算法结合;在redis数据库使用上,设置待办存放量上限,让redis数据库在资源最优的情况下运行,保证服务的稳定和高效;同时,利用银行家算法避免死锁的特性,解决因redis数据库资源有限导致的互斥问题。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1