程序异常的处理方法、装置、计算机存储介质及电子设备与流程

文档序号:17397664发布日期:2019-04-13 00:57阅读:192来源:国知局
程序异常的处理方法、装置、计算机存储介质及电子设备与流程

本公开涉及系统性能优化技术领域,特别涉及一种程序异常的处理方法、程序异常的处理装置、计算机存储介质、电子设备。



背景技术:

随着科学技术的发展,智能电子产品如笔记本电脑、手机、ipad等等,在日常生活中得到了广泛应用,人们通过安装在该些智能电子产品上的应用程序进行各种活动,如购物、聊天、阅读等等。为了使应用程序的功能更丰富,开发人员需要对应用程序进行不断的优化,以使用户通过更新应用程序的版本获得最新的应用程序。

在发布应用程序时,由于环境、变更等问题可能导致数据推送异常,使得同步过程中出错。当应用程序运行过程中出现异常时,运维人员需要在晚上用户使用量少的时段对应用程序进行维护,而现有的维护主要依赖人力进行,并且只能在晚上进行维护,这就使得维护效率降低、耗费大量人力、提高了维护成本,并且降低了用户体验。

鉴于此,本领域亟需开发一种程序异常的处理方法及装置。

需要说明的是,上述背景技术部分公开的信息仅用于加强对本公开的背景的理解。



技术实现要素:

本公开的目的在于提供一种程序异常的处理方法及装置、计算机存储介质、电子设备,进而至少在一定程度上自动化处理发生异常的应用程序,减少维护应用程序的人力,提高应用程序的维护效率和用户体验。

本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。

根据本公开的第一方面,提供一种程序异常的处理方法,包括:

设置一异常检测线程和一维护线程;

通过所述异常检测线程对运行的应用程序进行检测,以获取所述应用程序运行过程中的异常数据,并将所述异常数据存储于目标数据库中;

获取所述目标数据库中的异常数据,通过所述维护线程对与所述异常数据对应的应用程序进行补跑,根据补跑结果判断所述异常数据是否为待修复异常数据;

对所述待修复异常数据进行修复以使所述应用程序正常运行。

在本公开的示例性实施例中,通过所述异常检测线程对运行的应用程序进行检测,以获取应用程序运行过程中的异常数据,并将所述异常数据存储于目标数据库中,包括:

获取在维护窗口期所述应用程序运行过程中的异常数据;

将所述异常数据存储于所述目标数据库中,所述目标数据库对应于所述异常检测线程。

在本公开的示例性实施例中,所述方法还包括:

将所述待修复异常数据与自动判别机制数据库中的数据进行匹配;

若存在与所述待修复异常数据匹配的数据,则获取所述自动判别机制数据库中与所述数据对应的修复程序,以对所述待修复异常数据进行修复。

在本公开的示例性实施例中,所述方法还包括:

对所述待修复异常数据对应的应用程序进行多次轮询,并根据轮询结果判断是否对所述待修复异常数据进行人工修复;

若连续多次的轮询结果为失败,则对所述待修复异常数据进行人工修复,其中失败的轮询次数小于或等于轮询次数。

在本公开的示例性实施例中,对所述待修复异常数据对应的应用程序进行多次轮询,包括:

对所述待修复异常数据对应的应用程序进行多次机器轮询和/或人工轮询。

在本公开的示例性实施例中,所述方法还包括:

若补跑结果为失败,则所述异常数据为所述待修复异常数据;

若补跑结果为成功,则将所述异常数据从所述目标数据库中删除。

在本公开的示例性实施例中,所述方法还包括:

按照应用程序的优先级对所述应用程序进行检测和修复。

根据本公开的第二方面,提供了一种程序异常的处理装置,其特征在于,包括:

线程设置模块,用于设置一异常检测线程和一维护线程;

异常检测模块,用于通过所述异常检测线程对运行的应用程序进行检测,以获取所述应用程序运行过程中的异常数据,并将所述异常数据存储于目标数据库中;

异常数据确定模块,用于获取所述目标数据库中的异常数据,通过所述维护线程对与所述异常数据对应的应用程序进行补跑,根据补跑结果判断所述异常数据是否为待修复异常数据;

异常修复模块,用于对所述待修复异常数据进行修复以使所述应用程序正常运行。

根据本公开的第三方面,提供了一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述的程序异常的处理方法。

根据本公开的第四方面,提供了一种电子设备,其特征在于,包括:

处理器;以及

存储器,用于存储所述处理器的可执行指令;

其中,所述处理器配置为经由执行所述可执行指令来执行上述的程序异常的处理方法。

由上述技术方案可知,本公开示例性实施例中的程序异常的处理方法及装置至少具备以下优点和积极效果:

本公开通过异常检测线程对应用程序进行检测,并将应用程序运行过程中产生的异常数据存储于目标数据库中;然后通过维护线程对异常数据对应的应用程序进行补跑,根据补跑结果判断异常数据是否为待修复异常数据,当补跑结果为失败时,该异常数据为待修复异常数据;最后对待修复异常数据进行修复以使应用程序正常运行。本公开一方面通过两个线程对应用程序的异常进行检测和修复,提高了处理效率,节省了运维人力;另一方面异常检测线程和维护线程可以并行运行,节省了资源,提高了处理效率。

本公开应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出本公开示例性实施例中程序异常的处理方法的流程示意图;

图2示出本公开示例性实施例中程序异常的处理方法的应用场景示例图;

图3示出本公开示例性实施例中程序异常的处理装置的结构示意图;

图4示出本公开示例性实施例中计算机可读存储介质的结构示意图;

图5示出本公开示例性实施例中电子设备的结构示意图。

具体实施方式

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。

本说明书中使用用语“一个”、“一”、“该”和“所述”用以表示存在一个或多个要素/组成部分/等;用语“包括”和“具有”用以表示开放式的包括在内的意思并且是指除了列出的要素/组成部分/等之外还可存在另外的要素/组成部分/等;用语“第一”和“第二”等仅作为标记使用,不是对其对象的数量限制。

此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。

鉴于本领域相关技术中存在的问题,本示例实施方式中首先提供了一种程序异常的处理方法,该程序异常的处理方法可以运行于服务器,也可以运行于服务器集群或云服务器等,当然,本领域技术人员也可以根据需求在其他平台运行本公开的方法,本示例性实施例中对此不做特殊限定。参考图1所示,该程序异常的处理方法可以包括以下步骤:

步骤s110:设置一异常检测线程和一维护线程;

步骤s120:通过所述异常检测线程对运行的应用程序进行检测,以获取所述应用程序运行过程中的异常数据,并将所述异常数据存储于目标数据库中;

步骤s130:获取所述目标数据库中的异常数据,通过所述维护线程对与所述异常数据对应的应用程序进行补跑,根据补跑结果判断所述异常数据是否为待修复异常数据;

步骤s140:对所述待修复异常数据进行修复以使所述应用程序正常运行。

本公开中的程序异常的处理方法通过异常检测线程对应用程序运行过程中是否出现异常进行检测,若出现异常时,则将应用程序运行过程中产生的异常数据存储于目标数据库中;然后通过维护线程对目标数据库中的异常数据对应的应用程序进行补跑,根据补跑结果判断异常数据是否为待修复异常数据;最后对待修复异常数据进行修复以使应用程序正常运行。本公开能够通过两个线程对应用程序的异常进行检测和修复,提高了处理效率,节省了运维人力。

下面,将结合图2对本示例实施方式中上述程序异常的处理方法中的各步骤进行详细的解释以及说明。

在步骤s110中,设置一异常检测线程和一维护线程。

在本公开的示例性实施例中,用户可以通过在终端设备201上进行操作以运行安装在终端设备201上的一个或多个应用程序,同时可以通过在服务器202中设置一个异常检测线程和一个维护线程,其中异常检测线程用于在应用程序运行时对其进行检测,判断在运行过程中是否出现异常,维护线程用于对应用程序运行过程中出现的异常数据进行检测。

在本公开的示例性实施例中,异常检测线程和维护线程可以并行执行,也可以串行执行,但是为了提高处理效率,在本公开的实施例中优选采用并行执行异常检测线程和维护线程的方式。

在步骤s120中,通过所述异常检测线程对运行的应用程序进行检测,以获取所述应用程序运行过程中的异常数据,并将所述异常数据存储于目标数据库中。

在本公开的示例性实施例中,异常检测线程在应用程序运行过程中对其进行检测,判断应用程序是否存在异常。当判断应用程序中存在异常时,提取应用程序中的异常数据并将该异常数据存储于目标数据库中,该目标数据库可以是与异常检测线程对应的,用于存储应用程序运行过程中出现的异常数据。

应用程序的维护和正常工作通常是异步执行的,为了不影响用户的正常使用,一般选择在晚上对程序进行维护或发版。当环境发生变更的时候,数据会发生变化,例如数据变更、字段变化、表结构改变等等,在将数据进行同步的过程中,程序会因数据异常而无法执行,进而在运行时进行报错,以提醒运维人员进行修复维护。在本公开的示例性实施例中,可以在应用程序的维护窗口期运行应用程序,当应用程序运行出现异常或错误时,系统会发出报错信息,异常检测线程根据获取的报错信息能够获取异常数据,并将异常数据存储于目标数据库中。

在步骤s130中,获取所述目标数据库中的异常数据,通过所述维护线程对所述异常数据对应的应用程序进行补跑,根据补跑结果判断所述异常数据是否为待修复异常数据。

在本公开的示例性实施例中,可以从目标数据库中提取异常数据,通过维护线程对异常数据对应的应用程序进行补跑,根据补跑结果判断异常数据是否为待修复异常数据;当补跑结果为失败时,即可确定该异常数据为待修复异常数据;当补跑结果为成功时,即可确定该异常数据不是待修复异常数据。本公开中,对应用程序进行补跑的次数可以根据实际需要进行设定,本公开对此不做具体限定。

在本公开的示例性实施例中,当确定异常数据不是待修复异常数据时,可以将该异常数据从目标数据库中删除,以节省目标数据库的存储空间。

在步骤s140中,对所述待修复异常数据进行修复以使所述应用程序正常运行。

在本公开的示例性实施例中,确定待修复异常数据后,可以通过自动修复方法或人工修复方法对待修复异常数据进行修复。可以将待修复异常数据与自动判别机制数据库中的数据进行匹配,该自动判别机制数据库中存储有多种异常数据及对应的修复程序,若判定存在与待修复异常数据匹配的数据,则从自动判别机制数据库中获取与该待修复异常数据对应的修复程序,并根据该修复程序对待修复异常数据进行修复,进而保证应用程序的正常运行。

在本公开的示例性实施例中,对待修复异常数据进行修复后,仍将修复后的待修复异常数据保留在目标数据库的原位置,运行应用程序,根据运行结果判断是否完成修复。当运行结果为成功时,说明该待修复异常数据已完成修复,并且可以将该待修复异常数据从目标数据库中删除。

在本公开的示例性实施例中,若自动判别机制数据库中不存在与待修复异常数据匹配的修复程序,则可以在预设时间内对待修复异常数据进行轮询,轮询是日常设备维护时进行的工作,用于定时轮流检查各子系统工作是否正常,在本公开中,对待修复异常数据进行轮询可以是对待修复异常数据进行机器轮询和/或人工轮询,例如可以在维护窗口期进行三次轮询,其中三次的轮询可以都是机器轮询,可以都是人工轮询,也可以部分是机器轮询部分是人工轮询,如第一次、第二次轮询为机器轮询,第三次轮询为人工轮询,等等。其中轮询的次数可以根据实际需要进行设定,不限于三次,如可以设定为四次、五次等等,本公开对此不做具体限定。当连续多次轮询的结果都是失败时,则将该结果反馈至运维人员进行人工修复。在对待修复异常数据进行人工修复后,将该待修复异常数据和对应的修复程序存储于自动判别机制数据库中,以备后期维护修复使用。

在本公开的示例性实施例中,由于应用程序的数量巨大,为了提高用户体验,可以对应用程序按照优先级的高低进行维护,并对应用程序对应的异常数据进行修复。例如有的应用程序对应的数据库为核心数据库,那么该应用程序具有高优先级,可以对该应用程序运行过程中出现的异常数据进行有限修复;当然还可以根据开发和运维的经验对修复任务进行归类,确定优先级的顺序。

在本公开的示例性实施例中,可以逐个对应用程序进行维护,也可以对多个应用程序进行批量维护。同时由于异常检测线程和维护线程的并行执行,能够大大提高批量维护的效率,进一步提高用户体验。

本公开还提供了一种数据处理装置。图3示出了程序异常的处理装置的结构示意图,如图3所示,该程序异常的处理装置可以包括线程设置模块310、异常检测模块320、异常数据确定模块330和异常修复模块340。其中:

线程设置模块310,用于设置一异常检测线程和一维护线程;

异常检测模块320,用于通过所述异常检测线程对运行的应用程序进行检测,以获取所述应用程序运行过程中的异常数据,并将所述异常数据存储于目标数据库中;

异常数据确定模块330,用于获取所述异常数据库中的异常数据,并通过所述维护线程对与所述异常数据对应的应用程序进行补跑,根据补跑结果判断所述异常数据是否为待修复异常数据;

异常修复模块340,用于对所述待修复异常数据进行修复以使所述应用程序正常运行。

上述程序异常的处理装置中各模块的具体细节已经在对应的程序异常的处理方法中进行了详细的描述,因此此处不再赘述。

应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。

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

通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。

在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。

所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。

下面参照图4来描述根据本公开的这种实施方式的电子设备400。图4显示的电子设备400仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

如图4所示,电子设备400以通用计算设备的形式表现。电子设备400的组件可以包括但不限于:上述至少一个处理单元410、上述至少一个存储单元420、连接不同系统组件(包括存储单元420和处理单元410)的总线430。

其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元410执行,使得所述处理单元410执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。例如,所述处理单元410可以执行如图1中所示的步骤s110:设置一异常检测线程和一维护线程;步骤s120:通过所述异常检测线程对运行的应用程序进行检测,以获取所述应用程序运行过程中的异常数据,并将所述异常数据存储于目标数据库中;步骤s130:获取所述目标数据库中的异常数据,通过所述维护线程对与所述异常数据对应的应用程序进行补跑,根据补跑结果判断所述异常数据是否为待修复异常数据;步骤s140:对所述待修复异常数据进行修复以使所述应用程序正常运行。

存储单元420可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)4201和/或高速缓存存储单元4202,还可以进一步包括只读存储单元(rom)4203。

存储单元420还可以包括具有一组(至少一个)程序模块4205的程序/实用工具4204,这样的程序模块4205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

总线430可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。

电子设备400也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备400交互的设备通信,和/或与使得该电子设备400能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口450进行。并且,电子设备400还可以通过网络适配器460与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器460通过总线430与电子设备400的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备400使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。

通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。

在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。

参考图5所示,描述了根据本公开的实施方式的用于实现上述方法的程序产品500,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。

计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施例。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求所指出。

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