一种多预警服务调度的方法及系统与流程

文档序号:23260533发布日期:2020-12-11 18:49阅读:73来源:国知局
一种多预警服务调度的方法及系统与流程

本发明涉及互联网技术领域,特别是一种多预警服务调度的方法及系统。



背景技术:

防灾预警作为防灾组织体系中重要的组成部分之一,在灾情预防中起到了不可估量的作用。在当前防汛防灾工作过程中,存在灾情多样、多变的现象,就需要多个预警服务需要定时定点去处理这些数据,那么在预警任务比较多的情况下,怎么能够较好的安排和调度这些任务,从而能更加准时、稳定的预报出灾害信息就尤为重要。

目前,各省市灾情系统预警服务都是单线程运行,在任务很多的情况下,会存在一定的延迟情况,不够及时,如出现服务器崩溃等事情,会导致预警服务直接关闭掉,导致灾害地区不能及时有效规避风险,这些问题都是各地区防灾预警能力薄弱的重要原因。灾情预警作为防灾预防中关键的一环,其预报的及时性、稳定性也是至关重要的一环。



技术实现要素:

有鉴于此,本发明的目的是提出一种多预警服务调度的方法及系统,可以调高预警服务的准确性和稳定性,当发生服务灾害的时候,可以作为一种容灾的手段。

本发明采用以下方案实现:一种多预警服务调度的方法,具体为:在服务中定义领导者预警服务与普通预警服务,多个服务在多服务器上运行,并设置服务心跳时间,在每个服务心跳进行如下操作:

a,领导者预警服务监控所有服务,判断是否有新增预警服务,或者其他预警服务存在停止运行的情况,从而进行更改预警规则任务的指派;

b,普通预警服务监听领导者预警服务是否正常运行,当领导者预警服务异常停止时,按照顺位,由下一个顺位服务自动升级为领导者预警服务。

进一步地,在第一次启动运行时,执行以下步骤:

步骤s11:定义服务架构,包括领导者预警服务以及普通预警服务;

步骤s12:当新的预警服务注册进来后,先以普通预警服务的身份加入到总服务维护表中;

步骤s13:判断当前的总服务维护表中是否已经存在领导者预警服务,若是,则进入步骤s14,否则进入步骤s15;

步骤s14:判断是否已经被分配任务,若是,则运行分配的任务,之后结束进程;否则等待领导者分配任务,并重复本步骤;

步骤s15:根据总服务维护表,读取下一顺位正常运行的服务,判断下一顺位正常运行的服务是否为本服务,若是则进入步骤s16,否则,令下一顺位正常运行的服务作为领导者预警服务,返回步骤s14;

步骤s16:本服务升级为领导者预警服务,读取系统中所有需要预警的任务以及所有在线的服务,将需要预警的任务分配给在线的预警服务,之后结束进程。

进一步地,每个预警服务均会定时更新在总服务维护表中自己的服务状态,以通知其他服务本服务正常运行中。

进一步地,所述a具体包括以下步骤:

步骤sa1:领导者预警服务更新本服务的运行状态,并读取所有预警服务数据;

步骤sa2:将其他服务数据和上次运行的服务数据进行对比,判断是否有新加入的服务,或者是否存在已经停止运行的现有服务;若是,则进入步骤sa3,否则本次心跳检测结束;

步骤sa3:对所有的预警任务进行重新分配。

进一步地,所述b具体包括以下步骤:

步骤sb1:更新本服务的运行状态,并读取领导者预警服务,判断领导者预警服务的运行状态是否正常,若是,则进入步骤sb2,否则进入步骤sb3;

步骤sb2:判断是否已经被分配任务,若是,则运行分配的任务,之后结束本次心跳检测;否则等待领导者分配任务,并重复本步骤;

步骤sb3:根据总服务维护表,读取下一顺位正常运行的服务,判断下一顺位正常运行的服务是否为本服务,若是,则进入步骤sb4,否则令下一顺位正常运行的服务作为领导者预警服务,返回步骤sb2;

步骤sb4:本服务升级为领导者预警服务,读取系统中所有需要预警的任务以及所有在线的服务,将需要预警的任务分配给在线的预警服务,之后结束本次心跳检测。

本发明还提供了一种多预警服务调度系统,包括存储器、处理器,以及存储于存储器上并能够被处理器所运行的计算机程序,当处理器运行该计算机程序时,实现如上文所述的方法步骤。

本发明还提供了一种计算机可读存储介质,其上存储有能够被处理器所运行的计算机程序,当处理器运行该计算机程序时,实现如上文所述的方法步骤。

与现有技术相比,本发明有以下有益效果:本发明能够有效提高容灾的能力,在一个服务器在关闭的情况下,可以自动进行任务调度,提供灾情预警的有效性。当预警任务比较繁多的时候,一个服务,无法良好的做到,多任务同时进行预警,那么就会存在某些预警任务会被延时处理,采用本发明的方法能够提高预警的及时性。

附图说明

图1为本发明实施例的方法流程示意图。

具体实施方式

下面结合附图及实施例对本发明做进一步说明。

应该指出,以下详细说明都是示例性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

如图1所示,本实施例提供了一种多预警服务调度的方法,具体为:在服务中定义领导者预警服务与普通预警服务,多个服务在多服务器上运行,并设置服务心跳时间,在每个服务心跳进行如下操作:

a,领导者预警服务监控所有服务,判断是否有新增预警服务,或者其他预警服务存在停止运行的情况,从而进行更改预警规则任务的指派;

b,普通预警服务监听领导者预警服务是否正常运行,当领导者预警服务异常停止时,按照顺位,由下一个顺位服务自动升级为领导者预警服务。

较佳的,服务心跳时间为可配置,例如配置为5分钟检测一次,那么服务运行时间大于例如6分钟的(为防止存在一定的延迟导致的数据晚录,稍微扩大一分钟),则为异常状态,反之为正常。

其中,在第一次启动运行时,执行以下步骤:

步骤s11:定义服务架构,包括领导者预警服务以及普通预警服务;

步骤s12:当新的预警服务注册进来后,先以普通预警服务的身份加入到总服务维护表中;

步骤s13:判断当前的总服务维护表中是否已经存在领导者预警服务,若是,则进入步骤s14,否则进入步骤s15;

步骤s14:判断是否已经被分配任务,若是,则运行分配的任务,之后结束进程;否则等待领导者分配任务,并重复本步骤;

步骤s15:根据总服务维护表,读取下一顺位正常运行的服务,判断下一顺位正常运行的服务是否为本服务,若是则进入步骤s16,否则,令下一顺位正常运行的服务作为领导者预警服务,返回步骤s14;

步骤s16:本服务升级为领导者预警服务,读取系统中所有需要预警的任务以及所有在线的服务,然后根据任务的运行时间、运行时长,进行合理的安排给所有服务进行运行,之后结束进程。

在本实施例中,每个预警服务均会定时更新在总服务维护表中自己的服务状态,以通知其他服务本服务正常运行中。

其中,所述a具体包括以下步骤:

步骤sa1:领导者预警服务更新本服务的运行状态,并读取所有预警服务数据;

步骤sa2:将其他服务数据和上次运行的服务数据进行对比,判断是否有新加入的服务,或者是否存在已经停止运行的现有服务;若是,则进入步骤sa3,否则本次心跳检测结束;

步骤sa3:对所有的预警任务进行重新分配。

其中,所述b具体包括以下步骤:

步骤sb1:更新本服务的运行状态,并读取领导者预警服务,判断领导者预警服务的运行状态是否正常,若是,则进入步骤sb2,否则进入步骤sb3;

步骤sb2:判断是否已经被分配任务,若是,则运行分配的任务,之后结束本次心跳检测;否则等待领导者分配任务,并重复本步骤;

步骤sb3:根据总服务维护表,读取下一顺位正常运行的服务,判断下一顺位正常运行的服务是否为本服务,若是,则进入步骤sb4,否则令下一顺位正常运行的服务作为领导者预警服务,返回步骤sb2;

步骤sb4:本服务升级为领导者预警服务,读取系统中所有需要预警的任务以及所有在线的服务,然后根据任务的运行时间、运行时长,合理的将需要预警的任务分配给在线的预警服务,之后结束本次心跳检测。

本实施例还提供了一种多预警服务调度系统,包括存储器、处理器,以及存储于存储器上并能够被处理器所运行的计算机程序,当处理器运行该计算机程序时,实现如上文所述的方法步骤。

本实施例还提供了一种计算机可读存储介质,其上存储有能够被处理器所运行的计算机程序,当处理器运行该计算机程序时,实现如上文所述的方法步骤。

本实施例的方法是基于有多个通用预警规则在运行,通过多个服务在多服务器上运行,多服务需要一个领导者服务进行任务的调度,确保整个服务框架的正常运行。首先维护所有服务的存储结构,有服务运行加入后,按照顺序,记录到存储表,每个服务,都会定时定点去更新表里自己服务状态,用来通知其他服务,本服务正常运行中。领导者服务会监控所有服务,判断是否有新增预警服务,或者其他预警服务存在停止运行的情况,从而进行更改预警规则任务的指派。不是领导者的预警服务,会监听领导者预警服务是否正常运行,当领导者服务异常停止时,按照顺位,由下一个顺位服务自动升级为领导者服务。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述,仅是本发明的较佳实施例而已,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例。但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。

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