流式程序的运行检测方法及装置与流程

文档序号:26139663发布日期:2021-08-03 14:23阅读:66来源:国知局
流式程序的运行检测方法及装置与流程

本发明涉及大数据技术领域,特别涉及一种流式程序的运行检测方法及装置。



背景技术:

在大数据系统中,经常通过流式程序对业务数据进行实时处理或实时监控,流式程序需要一直运行而不能停止,流式程序一旦停止就会影响业务功能。但是,在spark等大数据系统中,会因为短时间内流入的数据量太大等原因造成流式程序运行故障而停止运行,现有技术依赖于运维人员人工查看流式程序的运行状态,难以及时感知流式程序是否停止运行,效率低。

针对上述问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供一种流式程序的运行检测方法,用以提高流式程序的运行检测效率,该方法包括:

在流式程序运行时,调用流式程序中内嵌的状态更新代码,其中,状态更新代码用于按照预设时间间隔向数据库写入流式程序的状态更新信息,状态更新信息至少包括:流式程序名称和写入时刻;

定时轮询数据库,从数据库中读取流式程序的状态更新信息列表,在最后一次的写入时刻与当前时刻的时间差大于预设阈值时,确定流式程序已停止运行;

向运维人员发送流式程序停止运行的信息。

本发明实施例提供一种流式程序的运行检测装置,用以提高流式程序的运行检测效率,该装置包括:

状态更新信息写入模块,用于在流式程序运行时,调用流式程序中内嵌的状态更新代码,其中,状态更新代码用于按照预设时间间隔向数据库写入流式程序的状态更新信息,状态更新信息至少包括:流式程序名称和写入时刻;

运行检测模块,用于定时轮询数据库,从数据库中读取流式程序的状态更新信息列表,在最后一次的写入时刻与当前时刻的时间差大于预设阈值时,确定流式程序已停止运行;

信息发送模块,用于向运维人员发送流式程序停止运行的信息。

本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述流式程序的运行检测方法。

本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有执行上述流式程序的运行检测方法。

本发明实施例通过:在流式程序运行时,调用流式程序中内嵌的状态更新代码,其中,状态更新代码用于按照预设时间间隔向数据库写入流式程序的状态更新信息,状态更新信息至少包括:流式程序名称和写入时刻,可以实时记录流式程序的运行状态;定时轮询数据库,从数据库中读取流式程序的状态更新信息列表,在最后一次的写入时刻与当前时刻的时间差大于预设阈值时,确定流式程序已停止运行;向运维人员发送流式程序停止运行的信息,通过定时轮询数据库,能够自动检测流式程序的运行状态,在确定流式程序已停止运行时,能够及时通知运维人员,提高了流式程序的运行检测效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1为本发明实施例中流式程序的运行检测方法流程的示意图;

图2为本发明实施例中建立数据库连接流程的示意图;

图3为本发明实施例中自动重启流程的示意图;

图4为本发明实施例中流式程序的运行检测装置结构的示意图;

图5为本发明实施例中流式程序的运行检测装置另一结构的示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本领域技术技术人员知道,本发明的实施方式可以实现为一种系统、装置、方法或计算机程序产品。因此,本发明公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。

本发明实施例提供一种流式程序的运行检测方法,用以提高流式程序的运行检测效率,图1为本发明实施例中流式程序的运行检测方法流程的示意图,如图1所示,该方法包括:

步骤101:在流式程序运行时,调用流式程序中内嵌的状态更新代码,其中,状态更新代码用于按照预设时间间隔向数据库写入流式程序的状态更新信息,状态更新信息至少包括:流式程序名称和写入时刻;

步骤102:定时轮询数据库,从数据库中读取流式程序的状态更新信息列表,在最后一次的写入时刻与当前时刻的时间差大于预设阈值时,确定流式程序已停止运行;

步骤103:向运维人员发送流式程序停止运行的信息。

如图1所示,本发明实施例通过:在流式程序运行时,调用流式程序中内嵌的状态更新代码,其中,状态更新代码用于按照预设时间间隔向数据库写入流式程序的状态更新信息,状态更新信息至少包括:流式程序名称和写入时刻,可以实时记录流式程序的运行状态;定时轮询数据库,从数据库中读取流式程序的状态更新信息列表,在最后一次的写入时刻与当前时刻的时间差大于预设阈值时,确定流式程序已停止运行;向运维人员发送流式程序停止运行的信息,通过定时轮询数据库,能够自动检测流式程序的运行状态,在确定流式程序已停止运行时,能够及时通知运维人员,提高了流式程序的运行检测效率。

图2为本发明实施例中建立数据库连接流程的示意图,如图2所示,在一个实施例中,在流式程序运行之前,该方法还可以包括:

步骤201:建立状态更新代码与数据库的连接;

步骤202:调用状态更新代码向数据库写入测试数据,在测试数据写入成功时,确定数据库可写入。:

具体实施时,流式程序是大数据系统中的一种作业类型,这类作业是对源源不断输入的数据进行实时的处理,有数据就处理,没数据就空转,以便能够实时的对流进的数据进行处理,流式程序是以秒为单位不断循环运行的,因此流式程序一般是不能停止运行的,本发明实施例首先需要开发状态更新代码,状态更新代码可以按照预设时间间隔向数据库写入流式程序的状态更新信息,在状态更新代码开发完成后,需要建立状态更新代码与数据库的连接,调用状态更新代码向数据库写入测试数据,在测试数据写入成功时,确定数据库可写入,这样可以确保数据库正确连接并可写入。然后,可以将状态更新代码与流式程序代码进行整合,可以将状态更新代码内嵌入流式程序,使流式程序代码可以非常直观方便的调用状态更新代码,保证当流式程序在执行时也能够调用状态更新代码。

步骤101中,在流式程序运行时,可以自动调用内嵌的状态更新代码,通过状态更新代码按照预设时间间隔向数据库写入流式程序的状态更新信息,状态更新信息可以包括:流式程序名称、写入时刻和写入日期,预设时刻例如可以是3秒,状态更新信息例如可以是:stream-a,2020-12-1923:21:00;stream-a,2020-12-1923:21:03;stream-a,2020-12-1923:21:06;stream-a,2020-12-1923:21:09......依次类推。

即在流式程序正常运行时,每隔3秒钟就向数据库中写入状态更新信息,表示流式程序处于正常运行状态,在流式程序停止运行时,流式程序也不会再调用状态更新代码,自然也不会再向数据库写入状态更新信息,从而实现了流式程序的运行状态的实时记录。

在一个实施例中,预设阈值根据流式程序的优先级,以及系统心跳信息确定。

具体实施时,步骤102中,为了检测流式程序是否已停止运行,需要设置预设阈值,在数据库超出预设阈值时长没有写入流式程序的状态更新信息时,可以认为状态更新代码已停止运行,即流式程序已停止运行,具体的,用户可以根据流式程序的优先级、系统心跳信息等各类因素设置该阈值,预设阈值例如可以是30分钟。

然后,可以定时轮询数据库,从数据库中读取流式程序的状态更新信息列表,获得流式程序的状态更新信息列表最后一次的写入时刻,求取最后一次的写入时刻与当前时刻的时间差,若最后一次的写入时刻与当前时刻的时间差大于预设阈值,表示数据库已超出预设阈值时长没有写入流式程序的状态更新信息,确定流式程序已停止运行,例如:预设阈值l(如30分钟)、当前时刻ct(如2020-12-1923:56:33)、流式程序的状态更新信息列表最后一次的写入时刻ut(如2020-12-1923:21:09),然后将ct减去ut得到数值再与l作比较,ct-ut=33分,大于l,可以认为是该流式程序已停止运行,最后,步骤103中,需要向运维人员发送流式程序停止运行的信息,提醒运维人员尽快恢复流式程序。若最后一次的写入时刻与当前时刻的时间差小于或等于预设阈值,表明流式程序正常运行,则等待下一次轮询数据库。

图3为本发明实施例中自动重启流程的示意图,如图3所示,在一个实施例中,该方法还包括:

步骤301:在流式程序运行之前,预设流式程序的自动重启参数;

该方法还包括:

步骤302:在确定流式程序已停止运行之后,读取流式程序的自动重启参数,在流式程序的自动重启参数为需要自动重启时,自动重启已停止运行的流式程序。

具体实施时,为了进一步提高流式程序的重启效率,节省时间,本发明实施例中,可以在流式程序运行之前,预设流式程序的自动重启参数,自动重启参数用于表征流式程序停止运行后是否需要自动重新启动,在确定流式程序已停止运行之后,可以读取流式程序的自动重启参数,在流式程序的自动重启参数为需要自动重启时,自动重启已停止运行的流式程序,而无需通知运维人员,由运维人员手动重启,提高了流式程序的重启效率。

应当注意,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

基于同一发明构思,本发明实施例中还提供了一种流式程序的运行检测装置,如下面的实施例。由于流式程序的运行检测装置解决问题的原理与流式程序的运行检测方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

本发明实施例提供一种流式程序的运行检测装置,用以提高流式程序的运行检测效率,图4为本发明实施例中流式程序的运行检测装置结构的示意图,如图4所示,该装置包括:

状态更新信息写入模块01,用于在流式程序运行时,调用流式程序中内嵌的状态更新代码,其中,状态更新代码用于按照预设时间间隔向数据库写入流式程序的状态更新信息,状态更新信息至少包括:流式程序名称和写入时刻;

运行检测模块02,用于定时轮询数据库,从数据库中读取流式程序的状态更新信息列表,在最后一次的写入时刻与当前时刻的时间差大于预设阈值时,确定流式程序已停止运行;

信息发送模块03,用于向运维人员发送流式程序停止运行的信息。

图5为本发明实施例中流式程序的运行检测装置另一结构的示意图,如图5所示,在一个实施例中,该装置还包括:

重启参数设置模块04,用于:

在流式程序运行之前,预设流式程序的自动重启参数;

如图5所示,在一个实施例中,该装置还包括:

自动重启模块05,用于:

在确定流式程序已停止运行之后,读取流式程序的自动重启参数,在流式程序的自动重启参数为需要自动重启时,自动重启已停止运行的流式程序。

如图5所示,在一个实施例中,该装置还包括:

数据库连接模块06,用于:

在流式程序运行之前,建立状态更新代码与数据库的连接;

调用状态更新代码向数据库写入测试数据,在测试数据写入成功时,确定数据库可写入。

在一个实施例中,预设阈值根据流式程序的优先级,以及系统心跳信息确定。

本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述流式程序的运行检测方法。

本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有执行上述流式程序的运行检测方法。

下面举一个具体的例子,以便于理解本发明如何实施。

第一步:开发状态更新代码;

第二步:启动数据库,建立状态更新代码与数据库的连接,调用状态更新代码向数据库写入测试数据,在测试数据写入成功时,确定数据库可写入;

第三步:将状态更新代码与流式程序代码进行整合,将状态更新代码内嵌入流式程序,预设流式程序的自动重启参数;

第四步:在流式程序运行时,自动调用流式程序内嵌的状态更新代码,通过状态更新代码按照预设时间间隔(3秒)向数据库写入流式程序的状态更新信息:stream-a,2020-12-1923:21:00;stream-a,2020-12-1923:21:03;stream-a,2020-12-1923:21:06;stream-a,2020-12-1923:21:09;

第五步:根据流式程序的优先级、系统心跳信息等各类因素设置预设阈值,定时轮询数据库,从数据库中读取流式程序的状态更新信息列表,获得流式程序的状态更新信息列表最后一次的写入时刻,求取最后一次的写入时刻与当前时刻的时间差,若最后一次的写入时刻与当前时刻的时间差大于预设阈值,确定流式程序已停止运行;若最后一次的写入时刻与当前时刻的时间差小于或等于预设阈值,表明流式程序正常运行,则等待下一次轮询数据库;

第六步:确定流式程序已停止运行后,向运维人员发送流式程序停止运行的信息,提醒运维人员尽快恢复流式程序,或读取流式程序的自动重启参数,在流式程序的自动重启参数为需要自动重启时,自动重启已停止运行的流式程序。

综上所述,本发明实施例通过:在流式程序运行时,调用流式程序中内嵌的状态更新代码,其中,状态更新代码用于按照预设时间间隔向数据库写入流式程序的状态更新信息,状态更新信息至少包括:流式程序名称和写入时刻,可以实时记录流式程序的运行状态;定时轮询数据库,从数据库中读取流式程序的状态更新信息列表,在最后一次的写入时刻与当前时刻的时间差大于预设阈值时,确定流式程序已停止运行;向运维人员发送流式程序停止运行的信息,通过定时轮询数据库,能够自动检测流式程序的运行状态,在确定流式程序已停止运行时,能够及时通知运维人员,提高了流式程序的运行检测效率。

此外,本发明实施例通过预设流式程序的自动重启参数,能够在确定流式程序已停止运行之后,读取流式程序的自动重启参数,在流式程序的自动重启参数为需要自动重启时,自动重启已停止运行的流式程序,提高了流式程序的重启效率。

虽然本发明提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。

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

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

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

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

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。本发明并不局限于任何单一的方面,也不局限于任何单一的实施例,也不局限于这些方面和/或实施例的任意组合和/或置换。而且,可以单独使用本发明的每个方面和/或实施例或者与一个或更多其他方面和/或其实施例结合使用。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。

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