CN108579093B - 目标进程的运行保护方法、装置及可读介质 - Google Patents
目标进程的运行保护方法、装置及可读介质 Download PDFInfo
- Publication number
- CN108579093B CN108579093B CN201810445205.9A CN201810445205A CN108579093B CN 108579093 B CN108579093 B CN 108579093B CN 201810445205 A CN201810445205 A CN 201810445205A CN 108579093 B CN108579093 B CN 108579093B
- Authority
- CN
- China
- Prior art keywords
- target
- driving source
- timer
- function
- target process
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 411
- 230000008569 process Effects 0.000 title claims abstract description 342
- 238000002955 isolation Methods 0.000 claims abstract description 61
- 230000006870 function Effects 0.000 claims description 215
- 238000003860 storage Methods 0.000 claims description 21
- 239000000872 buffer Substances 0.000 claims description 16
- 230000001960 triggered effect Effects 0.000 claims description 16
- 238000010586 diagram Methods 0.000 description 17
- 238000012545 processing Methods 0.000 description 8
- 238000011112 process operation Methods 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 241000196324 Embryophyta Species 0.000 description 1
- 241000219925 Oenothera Species 0.000 description 1
- 235000004496 Oenothera biennis Nutrition 0.000 description 1
- 241001529742 Rosmarinus Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/77—Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- General Business, Economics & Management (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种目标进程的运行保护方法、装置及可读介质,涉及计算机技术领域。该方法包括:获取驱动源,该驱动源用于对该目标进程进行驱动;根据该驱动源驱动该目标进程按照该驱动源对应的逻辑运行;当该目标进程在运行过程中发生故障时,对该驱动源进行记录;当该驱动源被记录的次数达到隔离次数时,对该驱动源进行隔离。当目标进程以某个驱动源对应的逻辑运行时发生故障并达到一定次数时,通过对该驱动源进行记录,并在该驱动源被记录的次数达到隔离次数时,对该驱动源进行隔离,避免了由同样的驱动源引发的同样的故障不断产生的问题,也即避免了同样的故障不能被及时隔离而不断发生,提高了目标进程运行的稳定性。
Description
技术领域
本申请实施例涉及计算机技术领域,特别涉及一种目标进程的运行保护方法、装置及可读介质。
背景技术
在一个游戏的运行过程中,该游戏对应的服务器中通常运行有多个场景进程,每个场景进程包括多个正在参与游戏的玩家,每个玩家在该游戏的客户端中进行操作,服务器根据玩家在客户端中的操作生成驱动源,即该玩家为驱动源中的目标对象,玩家在客户端中的操作对应的功能即为该驱动源的目标功能,通过该驱动源驱动场景进程按照该驱动源对应的逻辑运行,而根据用户在客户端的操作运行场景进程时,时常会造成场景进程发生故障的情况,如:场景进程被异常关闭,或者场景进程进入死循环。
相关技术中,对场景进程发生的故障通常进行如下处理:在场景进程运行过程中,实时对场景进程中的数据进行备份;当场景进程发生故障时,通过故障前备份的数据对场景进程进行恢复。
然而,通过上述对场景进程进行恢复的方式,当用户继续对在客户端中进行引发上述故障的操作时,依然会在该恢复后的场景进程中引发同样的故障,也即根据该用户在客户端中的操作会不断产生上述故障,则由该用户引发的该故障无法被彻底避免,导致场景进程的运行不稳定。
发明内容
本申请实施例提供了一种目标进程的运行保护方法、装置及可读介质,可以解决由该用户引发的故障无法被彻底避免,导致场景进程的运行不稳定的问题。该技术方案如下:
一方面,提供了一种目标进程的运行保护方法,该方法包括:
获取驱动源,该驱动源用于对该目标进程进行驱动;
根据该驱动源驱动该目标进程按照该驱动源对应的逻辑运行,该目标进程用于对目标功能集中的至少一个功能进行调用,该驱动源对应的逻辑用于在该目标功能集中确定该目标进程调用的目标功能;
当该目标进程在运行过程中发生故障时,对该驱动源进行记录;
当该驱动源被记录的次数达到隔离次数时,对该驱动源进行隔离。
另一方面,提供了一种目标场景进程的运行保护方法,应用于游戏应用程序对应的服务器中,该方法包括:
获取目标玩家对象对应的游戏客户端上报的功能请求;
根据该功能请求确定目标场景进程的驱动源,该目标场景进程中运行有至少一个玩家对象及该至少一个玩家对象的游戏环境,该驱动源用于根据该目标玩家对象上报的功能请求调用该功能请求对应的游戏功能;
根据该驱动源驱动该目标场景进程按照该驱动源对应的逻辑运行;
当该目标场景进程在运行过程中发生故障时,对该驱动源进行记录;
当该驱动源被记录的次数达到隔离次数时,对该玩家对象和/或该游戏功能进行隔离。
另一方面,提供了一种目标进程的运行保护装置,该装置包括:
第一获取模块,用于获取驱动源,该驱动源用于对该目标进程进行驱动;
第一运行模块,用于根据该驱动源驱动该目标进程按照该驱动源对应的逻辑运行,该目标进程用于对目标功能集中的至少一个功能进行调用,该驱动源对应的逻辑用于在该目标功能集中确定该目标进程调用的目标功能;
第一记录模块,用于当该目标进程在运行过程中发生故障时,对该驱动源进行记录;
第一隔离模块,用于当该驱动源被记录的次数达到隔离次数时,对该驱动源进行隔离。
另一方面,提供了一种目标场景进程的运行保护装置,应用于游戏应用程序对应的服务器中,该装置包括:
第二获取模块,用于获取目标玩家对象对应的游戏客户端上报的功能请求;
确定模块,用于根据该功能请求确定目标场景进程的驱动源,该目标场景进程中运行有至少一个玩家对象及该至少一个玩家对象的游戏环境,该驱动源用于根据该目标玩家对象上报的功能请求调用该功能请求对应的游戏功能;
第二运行模块,用于根据该驱动源驱动该目标场景进程按照该驱动源对应的逻辑运行;
第二记录模块,用于当该目标场景进程在运行过程中发生故障时,对该驱动源进行记录;
第二隔离模块,用于当该驱动源被记录的次数达到隔离次数时,对该玩家对象和/或该游戏功能进行隔离。
另一方面,提供了一种服务器,该服务器包括处理器和存储器,该存储器中存储有至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、该至少一段程序、该代码集或指令集由该处理器加载并执行以实现如上述本申请第一方面及其可选的实施例中任一所述的目标进程的运行保护方法。
另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述本申请第一方面及其可选的实施例中任一所述的目标进程的运行保护方法。
另一方面,提供了一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得计算机执行如上述本申请第一方面及其可选的实施例中任一所述的目标进程的运行保护方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
当进程以某个驱动源对应的逻辑运行时发生故障并达到一定的次数时,对该驱动源进行记录,并在该驱动源被记录的次数达到隔离次数时,对该驱动源进行隔离,避免了由同样的驱动源引发的同样的故障不断产生的问题,也即避免了同样的故障不能被及时隔离而不断发生,提高了目标进程运行的稳定性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个示例性实施例提供的场景进程的运行保护方法示意图;
图2是本申请一个示例性实施例提供的目标进程的运行保护方法的示意图;
图3是本申请一个示例性实施例提供的目标进程的运行保护方法流程图;
图4是本申请另一个示例性实施例提供的目标进程的运行保护方法流程图;
图5是本申请一个示例性实施例提供的定时器的计时逻辑示意图;
图6是本申请另一个示例性实施例提供的定时器的计时逻辑示意图;
图7是本申请另一个示例性实施例提供的定时器的计时逻辑示意图;
图8是本申请另一个示例性实施例提供的目标进程的运行保护方法流程图;
图9是本申请一个示例性实施例提供的故障共享方法的示意图;
图10是本申请另一个示例性实施例提供的故障共享方法的示意图;
图11是本申请一个示例性实施例提供的目标场景进程的运行保护方法流程图;
图12是本申请一个示例性实施例提供的目标进程的运行保护方法的故障隔离框架框图;
图13是本申请一个示例性实施例提供的目标进程的运行保护装置框图;
图14是本申请一个示例性实施例提供的目标场景进程的运行保护装置框图;
图15是本申请一个示例性的实施例提供的服务器的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先,对本申请实施例中涉及的名词进行解释。
驱动源:该驱动源是指用于对进程进行驱动的源头。以进程运行在服务器中为例进行说明,将服务器检测到驱动源时,根据该驱动源的逻辑对该进程进行驱动,也即,驱动该进程以该驱动源对应的逻辑运行。可选地,结合实际场景,该驱动源可以是根据用户在客户端中的操作,客户端向服务器发送的请求或指令;也可以是服务器根据预先设置的逻辑生成的用于计时的定时器。
场景进程:该场景进程是指包括场景以及角色的进程。可选地,该场景进程是运行在游戏应用程序对应的服务器中的进程,通常,一个游戏应用程序中包括多个大区,每个大区中包括多个小区,每个小区则对应一个场景进程,该场景进程中包括该小区中的游戏环境,以及该小区中的至少一个玩家,该至少一个玩家可以仅包括游戏状态为在线的玩家,也可以包括游戏状态为在线的玩家、游戏状态为离线的玩家以及游戏状态为其他状态的玩家。
示意性的,以角色扮演类游戏(Role Playing Game,RPG)为例,该游戏分为“青龙乱舞”、“大地飞鹰”、“名剑风流”、“血海飘香”以及“陌上花开”五个大区,以“陌上花开”为例,该大区又分为四个小区,分别为“月见草”、“曼陀罗”、“迷迭香”以及“彼岸花”,则该四个小区,每个小区都对应有一个场景进程,每个场景进程中包括玩家的游戏环境以及在该小区中的至少一个玩家。
进程故障:该进程故障是指该进程在运行过程中由于缺陷(英文:bug)导致的无法正常运行,可选地,该进程故障包括进程异常关闭和/或进程陷入死循环,其中,进程异常关闭通常是由空指针、内存越界、栈溢出等问题导致的,进程陷入死循环通常是由延迟为0的定时器不断在根定时器的计时逻辑中增加导致的。
故障隔离:该故障隔离是指对造成故障的驱动源进行隔离,即避免进程再根据被隔离的驱动源的逻辑运行。
图1是本申请一个示例性实施例提供的场景进程故障的处理方法示意图,通常,该场景进程故障是指场景进程异常关闭,在场景进程发生故障时会进行如图1所示的处理:场景进程A为正在运行中的进程,其在运行过程中将状态数据存储在共享内存中,该共享内存可以是一台实体服务器,也可以是一台虚拟的云服务器。
监控进程对场景进程A的运行状态进行监控,并判断场景进程A是否宕机,当监控进程检测到场景进程A宕机时,对该场景进程A进行重新启动,从共享内存中获取状态数据并对该状态数据进行恢复,将宕机后的场景进程A恢复为场景进程A’。
其次,对本申请的整体方案进行说明,请参考图2,图2是本申请一个示例性实施例提供的目标进程的运行保护方法的示意图。以该目标进程的运行保护方法由客户端与服务器进行交互实现为例进行说明,客户端21中显示有用户可以选择的功能,如:功能A、功能B、功能C、功能D、功能E以及功能F,其中,用户对功能B进行点击后,客户端21向服务器23发送请求包24,该请求包中包括客户端的用户的标识以及用户所请求的功能B的标识。服务器接收到请求包24后,通过请求包过滤器26对该请求包进行过滤,请求包过滤器会对故障记录表中记录的请求包中用户和/或功能相同的请求包进行过滤,根据未被过滤的请求包通过运行逻辑28运行目标进程。
同样的,客户端22中显示有用户可以选择的功能,如:功能A、功能B、功能C、功能D、功能E以及功能F,其中,用户对功能D进行点击后,客户端22向服务器发送请求消息并触发定时器25,该定时器25中记录有触发该定时器25的用户标识以及该用户请求的功能D的标识。服务器检测到定时器25后,通过定时器过滤器27对该定时器进行过滤,定时器过滤器会对故障记录表中记录的定时器中用户和/或功能相同的定时器进行过滤,根据未被过滤的定时器通过运行逻辑28运行目标进程。
其中,请求包过滤器26、定时器过滤器27、运行逻辑28以及故障记录表29都是属于目标进程的部分。
图3是本申请一个示例性实施例提供的目标进程的运行保护方法流程图,以该目标进程的运行保护方法应用在服务器中为例进行说明,如图3所示,该方法包括:
步骤301,获取驱动源。
可选地,该驱动源用于对目标进程进行驱动。
可选地,该驱动源可以是用户在客户端中进行操作后,客户端向服务器发送的请求,也可以是服务器根据预先设置的逻辑进行计时的定时器。其中,用户在客户端中进行操作向服务器发送的请求也可以对定时器进行触发。
示意性的,用户在客户端中点击登录后,客户端向服务器发送登录请求,该客户端发送的登录请求即为驱动源,可选地,该登录请求包括请求登录的用户的标识以及该用户所请求的功能,即登录功能。
步骤302,根据驱动源驱动目标进程按照驱动源对应的逻辑运行。
可选地,该目标进程用于对目标功能集中的至少一个功能进行调用,该驱动源对应的逻辑用于在目标功能集中确定所述目标进程调用的目标功能。其中,该目标功能集为预设的功能集。可选地,该目标功能集中包括用户通过客户端能够请求的功能以及目标进程可以自行触发的功能。
可选地,该驱动源用于驱动目标进程按照该驱动源对应的逻辑运行,示意性的,结合上述用户在客户端中点击登陆后,客户端向服务器发送的登录请求作为驱动源为例进行说明,该登录请求中还包括用户的账号和密码,当服务器接收到登录请求后,驱动目标进程判断该登录请求中的账号和密码与预存的账号密码对应关系是否匹配,该判断的过程即为目标进程根据驱动源对应的逻辑运行的过程。
步骤303,当目标进程在运行过程中发生故障时,对驱动源进行记录。
可选地,该目标进程在运行过程中发生故障包括如下故障中的至少一种:
第一,目标进程在运行过程中被异常关闭,对驱动源进行记录;
第二,目标进程在运行过程中陷入死循环时,对驱动源进行记录。
可选地,对驱动源进行记录的方式包括如下方式中的至少一种:
第一种,该驱动源包括目标对象和目标功能,该目标对象为对目标功能进行请求的对象,该驱动源对应的逻辑与该目标功能对应时,当目标进程根据驱动源运行时被异常关闭时,在故障记录表中对目标对象和目标功能的对应关系进行记录,可选地,该故障记录表为二维记录表;根据该故障记录表确定目标对象和/或目标功能被记录的次数。
第二种,该驱动源为根据进程中预先设置的逻辑运行的定时器,当目标进程根据该定时器运行时陷入死循环时,则在对驱动源进行记录时,直接对该定时器进行记录。可选地,该定时器的目标对象为该定时器对应的用户,该定时器对应的目标功能即为该定时器的类型。在对该定时器进行记录时,也可以在上述故障记录表中进行记录。
第三种,该驱动源包括目标对象和目标功能,根据该目标对象和目标功能,目标进程触发定时器进行计时,并在该定时器进行计时的过程中陷入了死循环,则对该目标对象和目标功能在故障记录表中进行记录。
步骤304,当驱动源被记录的次数达到隔离次数时,对该驱动源进行隔离。
可选地,对驱动源进行隔离的方式包括如下方式中的至少一种:
第一,当驱动源为根据进程中预先设置的逻辑运行的定时器时,当该定时器被记录的次数达到隔离次数时,对该定时器进行隔离,即避免该定时器再次进行定时。
第二,当该驱动源包括目标用户和目标功能时,该目标进程中运行有第一对象集,该第一对象集用于对目标功能集中的功能进行请求;
当目标对象和目标功能的对应关系被记录的次数达到第一隔离次数时,屏蔽目标对象对目标功能的请求;
和/或,
当目标对象被记录的次数达到第二隔离次数时,禁止目标对象对目标功能集进行请求,该目标功能集中包括目标功能;
和/或,
当目标功能被记录的次数达到第三隔离次数时,屏蔽第一对象集对目标功能的请求,该第一对象集中包括目标对象。
综上所述,本实施例提供的目标进程的运行保护方法,当目标进程以某个驱动源对应的逻辑运行时发生故障并达到一定次数时,对该驱动源进行记录,并在该驱动源被记录的次数达到隔离次数时,对该驱动源进行隔离,避免了由某一个驱动源引发的同样的故障不断产生的问题,也即避免了同样的故障不能被及时隔离而不断发生,提高了进程运行的稳定性。
在一个可选地实施例中,通过在根定时器中设置深度变量判断目标进程是否陷入死循环,图4是本申请一个示例性实施例提供的目标进程的运行保护方法流程图,以该目标进程的运行保护方法应用在服务器中为例进行说明,如图4所示,该方法包括:
步骤401,获取驱动源。
可选地,该驱动源用于对目标进程进行驱动。
可选地,该驱动源可以是用户在客户端中进行操作后,客户端向服务器发送的请求,也可以是服务器根据预先设置的逻辑进行计时的定时器。其中,用户在客户端中进行操作向服务器发送的请求也可以对定时器进行触发。
示意性的,用户在客户端中点击登录后,客户端向服务器发送登录请求,该客户端发送的登录请求即为驱动源,可选地,该登录请求包括请求登录的用户的标识以及该用户所请求的功能,即登录功能。
步骤402,根据驱动源驱动目标进程按照驱动源对应的逻辑运行。
可选地,该目标进程用于对目标功能集中的至少一个功能进行调用,该驱动源对应的逻辑用于在目标功能集中确定所述目标进程调用的目标功能。其中,该目标功能集为预设的功能集。可选地,该目标功能集中包括用户通过客户端能够请求的功能以及目标进程可以自行触发的功能。
可选地,该驱动源用于驱动目标进程按照该驱动源对应的逻辑运行,示意性的,结合上述用户在客户端中点击登陆后,客户端向服务器发送的登录请求作为驱动源为例进行说明,该登录请求中还包括用户的账号和密码,当服务器接收到登录请求后,驱动目标进程判断该登录请求中的账号和密码与预存的账号密码对应关系是否匹配,该判断的过程即为目标进程根据驱动源对应的逻辑运行的过程。
步骤403,当目标进程在运行过程中被异常关闭时,对驱动源进行记录。
可选地,当目标进程在运行过程中存在空指针、内存越界或者栈溢出等bug时,可能会导致目标进程被异常关闭,而上述bug通常是在驱动源驱动目标进程运行时产生的,所以对产生bug之前的驱动源进行记录。
可选地,对驱动源进行记录的方式包括如下方式中的至少一种:
第一种,该驱动源包括目标对象和目标功能,该目标对象为对目标功能进行请求的对象,该驱动源对应的逻辑与该目标功能对应时,当目标进程根据驱动源运行时被异常关闭时,在故障记录表中对目标对象和目标功能的对应关系进行记录,可选地,该故障记录表为二维记录表;根据该故障记录表确定目标对象和/或目标功能被记录的次数;
可选地,结合实际场景,以游戏应用程序为例,目标对象为对功能进行请求的玩家,目标功能为玩家所请求的功能。
示意性的,该故障记录表的形式如下表一所示:
表一
结合上表一可知,用户1在请求功能A时,造成目标进程发生了两次故障,用户3在请求功能B时,造成目标进程发生了一次故障,用户2在请求功能C时,造成目标进程发生了一次故障。
第二种,该驱动源为根据进程中预先设置的逻辑运行的定时器,当目标进程根据该定时器运行时被异常关闭时,直接对该定时器进行记录。可选地,该定时器的目标对象为该定时器对应的用户,该定时器对应的目标功能即为该定时器的类型。在对该定时器进行记录时,也可以在上述故障记录表,即表一中进行记录。
步骤404,在目标进程中的根定时器中设置深度变量。
可选地,目标进程中包括根定时器,该根定时器的前置定时器以及该根定时器的后置定时器,其中,前置定时器为触发该根定时器开始计时的前一个定时器,且该根定时器的延迟为0,且该前置定时器的延迟不为0,该后置定时器为根定时器的计时逻辑中被连续触发的延迟为0的定时器。在一个可选的实施例中,当触发该根定时器开始计时的不是定时器时,该目标进程中不包括该根定时器的前置定时器。
可选的,该根定时器可以是服务器根据接收到的用户通过客户端发送的请求触发的定时器,也可以是目标进程中根据预设的逻辑触发的定时器,延迟为0的定时器为立即开始执行计时的定时器。
该深度变量用于表示后置定时器的数量,即根定时器的计时逻辑中被连续触发的延迟为0的定时器,示意性的,深度变量的变化过程如下:根定时器为定时器a1,该定时器a1中设置有深度变量,且该定时器a1的延迟为0,在该定时器a1的计时逻辑中,触发定时器b1开始计时,定时器b1的延迟也为0,即当定时器b1计时完成后,定时器a1继续进行计时,当触发定时器b1开始计时后,深度变量加一,在定时器b1的计时逻辑中,触发定时器a2开始计时,即定时器a2计时完成后,定时器b1继续计时,深度变量再次加一。其中,a1为根定时器,b1和a2为后置定时器。
示意性的,定时器的计时逻辑如图5所示,定时器a1为根定时器,定时器an和bn为定时器a1的计时逻辑中的定时器,当定时器bn定时完成一周后,定时器an完成一格,以此类推。
请参考图6,定时器a1为当前定时器,在该定时器a1的计时逻辑中顺序增加定时器b1,定时器a2。
步骤405,当根定时器中的深度变量的数值大于预设数值时,确定目标进程陷入死循环。
当根定时器中的深度变量的数值大于预设数值时,说明根定时器中的后置定时器的数量在不断增多,也即根定时器的定时逻辑中不断增加了新的延迟为0的定时器,则可以确定该目标进程陷入了死循环。
示意性的,请参考图7,在根定时器a1中包括的参数有定时器标识(英文:id),深度变量(英文:depth),定时器类型(英文:type),可选地,该根定时器a1中还包括该根定时器的信息,用于在目标进程发生故障时对该定时器进行记录,如:当该定时器是根据用户通过客户端发送的请求触发时,该定时器的信息中还包括触发该根定时器的用户标识,以及包括用户在触发该定时器时所请求的功能。
步骤406,当目标进程在运行过程中陷入死循环时,对驱动源进行记录。
可选地,对驱动源进行记录的方式包括如下方式中的至少一种:
第一种,该驱动源为根据进程中预先设置的逻辑运行的定时器,当目标进程根据该定时器运行时陷入死循环时,则在对驱动源进行记录时,直接对该定时器进行记录。
第二种,该驱动源包括目标对象和目标功能,根据该目标对象和目标功能,目标进程触发定时器进行计时,并在该定时器进行计时的过程中陷入了死循环,则对该目标对象和目标功能进行记录,记录方式如上表一所示。
步骤407,当驱动源被记录的次数达到隔离次数时,对该驱动源进行隔离。
可选地,对驱动源进行隔离的方式包括如下方式中的至少一种:
第一,当驱动源为根据进程中预先设置的逻辑运行的定时器时,当该定时器被记录的次数达到隔离次数时,对该定时器进行隔离,即避免该定时器再次进行计时。
第二,当该驱动源包括目标用户和目标功能时,该目标进程中运行有第一对象集,该第一对象集用于对目标功能集中的功能进行请求;
当目标对象和目标功能的对应关系被记录的次数达到第一隔离次数时,屏蔽目标对象对目标功能的请求;
和/或,
当目标对象被记录的次数达到第二隔离次数时,禁止目标对象对目标功能集进行请求,该目标功能集中包括目标功能;
和/或,
当目标功能被记录的次数达到第三隔离次数时,屏蔽第一对象集对目标功能的请求,该第一对象集中包括目标对象。
示意性的,请参考上表一,当用户和功能被记录的次数达到5次时,则屏蔽该用户对该功能的请求,如:当用户1与功能A的对应关系被记录的次数达到5次时,则屏蔽用户1对功能A的请求;当用户被记录的次数达到5次时,禁止该用户对功能集的请求,如:当用户1被记录的次数达到5次时,禁止该用户1对功能集1的请求,该功能集1中包括功能A、功能B以及功能C;当功能被记录的次数达到5次时,禁止用户集对该功能的请求,如:当功能B被记录的次数达到5次时,禁止用户集1对该功能B的请求,该用户集1包括用户1、用户2以及用户3。其中,每个用户被记录的次数为该用户与每个功能的对应关系被记录的次数的总和,如:用户1与功能A的对应关系被记录了2次,用户1与功能B的对应关系被记录了1次,用户1与功能C的对应关系未被记录过,则该用户1被记录的次数为3次。功能被记录的次数与用户被记录的次数的计数方式相同。
综上所述,本实施例提供的目标进程的运行保护方法,当目标进程以某个驱动源对应的逻辑运行时发生故障并达到一定次数时,对该驱动源进行记录,并在该驱动源被记录的次数达到隔离次数时,对该驱动源进行隔离,避免了由某一个驱动源引发的同样的故障不断产生的问题,也即避免了同样的故障不能被及时隔离而不断发生,提高了进程运行的稳定性。
本实施例提供的目标进程的运行保护方法,通过在根定时器中增加深度变量,避免该根定时器的计时逻辑中不断增加延迟为0的定时器,导致目标进程陷入死循环,无法正常运行的问题。
在一个可选的实施例中,在目标进程中的故障信息还可以被同步到其他同类型的进程中,图8是本申请一个示例性实施例提供的目标进程的运行保护方法流程图,以该目标进程的运行保护方法应用在服务器中为例进行说明,如图8所示,该方法包括:
步骤801,获取驱动源。
可选地,该驱动源用于对目标进程进行驱动。
可选地,该驱动源可以是用户在客户端中进行操作后,客户端向服务器发送的请求,也可以是服务器根据预先设置的逻辑进行计时的定时器。其中,用户在客户端中进行操作向服务器发送的请求也可以对定时器进行触发。
示意性的,用户在客户端中点击登录后,客户端向服务器发送登录请求,该客户端发送的登录请求即为驱动源,可选地,该登录请求包括请求登录的用户的标识以及该用户所请求的功能,即登录功能。
步骤802,对获取到的驱动源在缓存区进行缓存。
可选地,服务器中设置有缓存区,用于缓存驱动目标进程运行的驱动源。可选地,缓存区中缓存的是驱动源的驱动信息,如:当驱动源是用户通过客户端向服务器发送的请求时,该缓存区中缓存的是用户信息以及该用户所请求的功能;当驱动源是目标进程中的定时器时,该缓存区中缓存的是该定时器的信息。
步骤803,根据驱动源驱动目标进程按照驱动源对应的逻辑运行。
可选地,该目标进程用于对目标功能集中的至少一个功能进行调用,该驱动源对应的逻辑用于在目标功能集中确定所述目标进程调用的目标功能。其中,该目标功能集为预设的功能集。可选地,该目标功能集中包括用户通过客户端能够请求的功能以及目标进程可以自行触发的功能。
可选地,该驱动源用于驱动目标进程按照该驱动源对应的逻辑运行,示意性的,结合上述用户在客户端中点击登陆后,客户端向服务器发送的登录请求作为驱动源为例进行说明,该登录请求中还包括用户的账号和密码,当服务器接收到登录请求后,驱动目标进程判断该登录请求中的账号和密码与预存的账号密码对应关系是否匹配,该判断的过程即为目标进程根据驱动源对应的逻辑运行的过程。
值得注意的是,步骤802可以执行在步骤803之前,也可以执行在步骤803之后,还可以和步骤803同时执行,本申请实施例对此不加以限定。
步骤804,当目标进程在运行过程中发生故障时,从缓存区中读取驱动源,并对该驱动源进行记录。
可选地,缓存区中缓存有发生故障前服务器中获取到的驱动源。服务器可以在目标进程重新启动的过程中,对缓存区中的驱动源进行记录。
可选地,缓存区中可以按照获取驱动源的顺序缓存驱动源,并在发生故障时,将最后一个被缓存的驱动源作为引起故障的驱动源;服务器也可以在目标进程按照获取的驱动源的逻辑运行结束后,将该驱动源从缓存区中删除;服务器也可以在获取到下一个驱动源后,将缓存区中的驱动源删除,并将该下一个驱动源缓存至缓存区中。
可选地,当目标进程在运行过程中存在空指针、内存越界或者栈溢出等bug时,可能会导致目标进程被异常关闭,而上述bug通常是在驱动源驱动目标进程运行时产生的,所以对产生bug之前的驱动源进行记录。
可选地,对驱动源进行记录的方式在上述步骤403至步骤406中以作出了详细说明,此处不再进行赘述。
步骤805,当驱动源被记录的次数达到隔离次数时,对该驱动源进行隔离。
可选地,对驱动源进行隔离的方式包括如下方式中的至少一种:
第一,当驱动源为根据进程中预先设置的逻辑运行的定时器时,当该定时器被记录的次数达到隔离次数时,对该定时器进行隔离,即避免该定时器再次进行计时。
第二,当该驱动源包括目标用户和目标功能时,该目标进程中运行有第一对象集,该第一对象集用于对目标功能集中的功能进行请求;
当目标对象和目标功能的对应关系被记录的次数达到第一隔离次数时,屏蔽目标对象对目标功能的请求;
和/或,
当目标对象被记录的次数达到第二隔离次数时,禁止目标对象对目标功能集进行请求,该目标功能集中包括目标功能;
和/或,
当目标功能被记录的次数达到第三隔离次数时,屏蔽第一对象集对目标功能的请求,该第一对象集中包括目标对象。
步骤806,将目标进程中记录的故障共享至至少一个关联进程。
可选地,该关联进程为与目标进程属于同类型的进程。
可选地,该目标进程中记录的故障即为目标进程中的故障记录表中记录的驱动源。
可选地,该关联进程与该目标进程的代码逻辑相同。示意性的,一个游戏应用程序中包括多个大区,每个大区中包括多个小区,每个小区则对应一个场景进程,对应同一个大区的小区的场景进程互为关联进程。
可选地,将目标进程中的故障记录表中记录的驱动源共享至至少一个关联进程时,可以每隔预设时长共享一次该预设时长内的所有驱动源,也可以每当记录有一个驱动源时,将该最近一个被记录的驱动源共享至至少一个关联进程。
示意性的,请参考图9,管理进程对场景进程A和场景进程B进行管理,且场景进程A和场景进程B互为关联进程,当场景进程A中记录有故障时,通过管理进程,将该故障同步至场景进程B。结合图10,以该管理进程为故障记录转发器为例进行说明,在场景进程A的故障隔离框架中,将驱动源1记录在故障记录表1中,并将该驱动源1发送至故障记录转发器,通过该故障记录转发器将驱动源1发送至场景进程B,场景进程B的故障隔离框架中,当场景进程B接收到故障记录转发器发送的驱动源1时,将该驱动源1存储在故障记录表中。同样的,当场景进程B对新驱动源进行记录时,也会将该新驱动源通过故障记录转发器发送至场景进程A。
步骤807,若目标进程在运行中未发生故障,当目标进程以该驱动源对应的逻辑运行结束后,从缓存区中删除该驱动源。
可选地,若目标进程在运行中未发生故障,也可以在服务器获取到下一个驱动源时,从缓存区中删除该驱动源。
综上所述,本实施例提供的目标进程的运行保护方法,当目标进程以某个驱动源对应的逻辑运行时发生故障并达到一定次数时,对该驱动源进行记录,并在该驱动源被记录的次数达到隔离次数时,对该驱动源进行隔离,避免了由某一个驱动源引发的同样的故障不断产生的问题,也即避免了同样的故障不能被及时隔离而不断发生,提高了进程运行的稳定性。
本市实施例提供的目标进程的运行保护方法,通过将目标进程中的故障信息同步到其他同类型的进程中,避免了当同类型进程获取到同样的驱动源时,依旧产生故障,无法对故障进行预防的问题。
在一个具体的实施例中,以上述服务器为游戏应用程序对应的服务器,以目标进程为目标场景进程为例进行说明,图11是本申请一个示例性实施例提供的目标场景进程的运行保护方法流程图,以该目标场景进程的运行保护方法应用在游戏应用程序对应的服务器中为例进行说明,如图11所示,该方法包括:
步骤1101,获取目标玩家对象对应的游戏客户端上报的功能请求。
示意性的,玩家在游戏客户端上输入用户名和密码后,点击登录,客户端根据用户点击的登录,向服务器上报登录请求,该登录请求即为客户端上报的功能请求。可选地,该登录请求中包括玩家输入的账号、密码、玩家标识以及请求类型。
示意性的,玩家在游戏客户端上通过外部设备,如:鼠标或者键盘,对技能A进行发动后,客户端根据该技能A向服务器上报技能发动请求,该技能发动请求中包括玩家标识以及技能A的标识。
步骤1102,根据功能请求确定目标场景进程的驱动源。
可选地,该目标场景进程中运行有至少一个玩家对象及至少一个玩家对象的游戏环境,该驱动源用于根据目标玩家对象上报的功能请求调用功能请求对应的游戏功能。可选地,该目标场景进程中包括玩家的游戏环境,如:建筑物、植物、山坡等,还包括非玩家控制角色(Non Player Character,NPC),还包括玩家。
步骤1103,根据驱动源驱动目标场景进程按照驱动源对应的逻辑运行。
示意性的,当该驱动源为玩家在客户端上发动技能A生成的请求时,则目标场景进程按该玩家的玩家角色在游戏环境中发动技能A的逻辑运行。
步骤1104,当目标场景进程在运行过程中发生故障时,对驱动源进行记录。
示意性的,结合上述举例,当目标场景进程在按该玩家的玩家角色在游戏环境中发动技能A的逻辑运行的过程中发生故障时,对该驱动源进行记录,也即对玩家发动技能A的请求进行记录。可选地,服务器在记录时,所记录的是玩家与技能A的对应关系。
步骤1105,当驱动源被记录的次数达到隔离次数时,对玩家对象和/或游戏功能进行隔离。
示意性的,当玩家与技能A被记录的次数达到隔离次数时,对该玩家和/或功能A进行隔离。
其中,对玩家进行隔离,即禁止该玩家对该游戏中的功能进行请求;对技能A进行隔离,即禁止目标场景进程中的玩家发动技能A;对玩家和技能A的对应关系进行隔离,即禁止该玩家发动技能A。
综上所述,本实施例提供的目标场景进程的运行保护方法,当目标场景进程以某个驱动源对应的逻辑运行时发生故障,对该驱动源进行记录,并在该驱动源被记录的次数达到隔离次数时,对该驱动源进行隔离,避免了由某一个驱动源引发的同样的故障不断产生的问题,也即避免了同样的故障不能被及时隔离而不断发生,提高了目标场景进程运行的稳定性。
图12是本申请一个示例性的实施例提供的故障隔离框架120的结构框图,如图12所示,当根据请求包1201运行时目标进程发生故障时,将该请求包1201存储在故障记录表1202中,请求包过滤器1203从故障记录表1202获取被记录的请求包,当再次接收到请求包时,首先通过请求包过滤器1203对接收到的请求包进行过滤,驱动目标进程以过滤后的请求包的业务逻辑1204运行;当根据定时器1205运行时目标进程发生故障时,将该定时器1205存储在故障记录表1202中,定时器过滤器1206从故障记录表1202获取被记录的定时器,当再次接收到定时器时,首先通过定时器过滤器1206对接收到的定时器进行过滤,驱动目标进程以过滤后的定时器的业务逻辑1204运行。
图13是本申请一个示例性实施例提供的目标进程的运行保护装置框图,如图13所示,该目标进程的运行保护装置包括:第一获取模块1301、第一运行模块1302、第一记录模块1303以及第一隔离模块1304;
第一获取模块1301,用于获取驱动源,该驱动源用于对该目标进程进行驱动;
第一运行模块1302,用于根据该驱动源驱动该目标进程按照该驱动源对应的逻辑运行;
第一记录模块1303,用于当该目标进程在运行过程中发生故障时,对该驱动源进行记录;
第一隔离模块1304,用于当该驱动源被记录的次数达到隔离次数时,对该驱动源进行隔离。
在一个可选的实施例中,该驱动源包括目标对象和目标功能,该目标对象为对该目标功能进行请求的对象,该驱动源对应的逻辑与该目标功能对应;
该第一记录模块1303,还用于在故障记录表中对该目标对象和该目标功能的对应关系进行记录,该故障记录表为二维记录表;根据该故障记录表确定该目标对象和/或该目标功能被记录的次数。
在一个可选的实施例中,该目标进程中运行有第一对象集,该第一对象集中的对象用于对目标功能集中的功能进行请求;
该第一隔离模块1304,还用于当该目标对象和该目标功能的对应关系被记录的次数达到第一隔离次数时,屏蔽该目标对象对该目标功能的请求;
该第一隔离模块1304,还用于当该目标对象被记录的次数达到第二隔离次数时,禁止该目标对象对该目标功能集进行请求,该目标功能集包括该目标功能;
该第一隔离模块1304,还用于当该目标功能被记录的次数达到第三隔离次数时,屏蔽该第一对象集对该目标功能的请求,该第一对象集包括该目标对象。
在一个可选的实施例中,该第一记录模块1303,还用于当该目标进程在运行过程中被异常关闭时,对该驱动源进行记录;
该第一记录模块1303,还用于当该目标进程在运行过程中陷入死循环时,对该驱动源进行记录。
在一个可选的实施例中,该目标进程包括根定时器,该根定时器的前置定时器以及该根定时器的后置定时器,该前置定时器为触发该根定时器开始计时的前一个定时器,该根定时器的延迟为0且该前置定时器的延迟不为0,该后置定时器为在该根定时器的计时逻辑中被连续触发的延迟为0的定时器;
该装置还包括:
设置模块,用于在该目标进程中的根定时器中设置深度变量,该深度变量用于表示该后置定时器的数量;
确定模块,用于当该根定时器中的深度变量的数值大于预设数值时,确定该目标进程陷入死循环。
在一个可选的实施例中,该装置还包括:
共享模块,用于将该目标进程中记录的该故障共享至至少一个关联进程,该关联进程为与该目标进程属于同类型的进程。
在一个可选的实施例中,该装置,还包括:
缓存模块,用于对获取到的该驱动源在缓存区进行缓存;
该第一记录模块1303,包括:
读取单元,用于当该目标进程在运行过程中发生故障时,从该缓存区中读取该驱动源,并对该驱动源进行记录;
删除单元,用于若该目标进程在运行中未发生故障,当该目标进程以该驱动源对应的逻辑运行结束后,从该缓存区中删除所述驱动源。
综上所述,本实施例提供的目标场景进程的运行保护装置,当目标场景进程以某个驱动源对应的逻辑运行时发生故障,对该驱动源进行记录,并在该驱动源被记录的次数达到隔离次数时,对该驱动源进行隔离,避免了由某一个驱动源引发的同样的故障不断产生的问题,也即避免了同样的故障不能被及时隔离而不断发生,提高了目标场景进程运行的稳定性。
图14是本申请一个示例性实施例提供的目标场景进程的运行保护装置框图,如图14所示,该对目标场景进程的运行保护装置包括:第二获取模块1401、确定模块1402、第二运行模块1403、第二记录模块1404以及第二隔离模块1405;
第二获取模块1401,用于获取目标玩家对象对应的游戏客户端上报的功能请求;
确定模块1402,用于根据所述功能请求确定目标场景进程的驱动源,所述目标场景进程中运行有至少一个玩家对象及所述至少一个玩家对象的游戏环境,所述驱动源用于根据所述目标玩家对象上报的功能请求调用所述功能请求对应的游戏功能;
第二运行模块1403,用于根据所述驱动源驱动所述目标场景进程按照所述驱动源对应的逻辑运行;
第二记录模块1404,用于当所述目标场景进程在运行过程中发生故障时,对所述驱动源进行记录;
第二隔离模块1405,用于当所述驱动源被记录的次数达到隔离次数时,对所述玩家对象和/或所述游戏功能进行隔离。
本申请还提供了一种服务器,该服务器包括处理器和存储器,存储器中存储有至少一条指令,至少一条指令由处理器加载并执行以实现上述各个方法实施例提供的目标进程的运行保护方法。需要说明的是,该服务器可以是如下图15所提供的服务器。
请参考图15,其示出了本申请一个示例性实施例提供的服务器的结构示意图。具体来讲:所述服务器1500包括中央处理单元(CPU)1501、包括随机存取存储器(RAM)1502和只读存储器(ROM)1503的系统存储器1504,以及连接系统存储器1504和中央处理单元1501的系统总线1505。所述服务器1500还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)1506,和用于存储操作系统1513、应用程序1514和其他程序模块1515的大容量存储设备1507。
所述基本输入/输出系统1506包括有用于显示信息的显示器1508和用于用户输入信息的诸如鼠标、键盘之类的输入设备1509。其中所述显示器1508和输入设备1509都通过连接到系统总线1505的输入输出控制器1510连接到中央处理单元1501。所述基本输入/输出系统1506还可以包括输入输出控制器1510以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1510还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备1507通过连接到系统总线1505的大容量存储控制器(未示出)连接到中央处理单元1501。所述大容量存储设备1507及其相关联的计算机可读介质为服务器1500提供非易失性存储。也就是说,所述大容量存储设备1507可以包括诸如硬盘或者CD-ROI驱动器之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器1504和大容量存储设备1507可以统称为存储器。
存储器存储有一个或多个程序,一个或多个程序被配置成由一个或多个中央处理单元1501执行,一个或多个程序包含用于实现上述目标进程的运行保护方法的指令,中央处理单元1501执行该一个或多个程序实现上述各个方法实施例提供的目标进程的运行保护方法。
根据本发明的各种实施例,所述服务器1500还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器1500可以通过连接在所述系统总线1505上的网络接口单元1511连接到网络1512,或者说,也可以使用网络接口单元1511来连接到其他类型的网络或远程计算机系统(未示出)。
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,所述一个或者一个以上程序包含用于进行本发明实施例提供的目标进程的运行保护方法中由服务器所执行的步骤。
本申请实施例还提供一种计算机可读存储介质,该存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器1510加载并执行以实现如图1至图12任一所述的目标进程的运行保护方法。
本申请还提供了一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行上述各个方法实施例提供的目标进程的运行保护方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (12)
1.一种目标进程的运行保护方法,其特征在于,所述方法包括:
获取驱动源,所述驱动源用于对所述目标进程进行驱动;所述目标进程包括根定时器,所述根定时器的前置定时器以及所述根定时器的后置定时器,所述前置定时器为触发所述根定时器开始计时的前一个定时器,所述根定时器的延迟为0且所述前置定时器的延迟不为0,所述后置定时器为在所述根定时器的计时逻辑中被连续触发的延迟为0的定时器;
根据所述驱动源驱动所述目标进程按照所述驱动源对应的逻辑运行,所述目标进程用于对目标功能集中的至少一个功能进行调用,所述驱动源对应的逻辑用于在所述目标功能集中确定所述目标进程调用的目标功能;
在所述目标进程中的根定时器中设置深度变量,所述深度变量用于表示所述后置定时器的数量;
当所述根定时器中的深度变量的数值大于预设数值时,确定所述目标进程陷入死循环;
当所述目标进程在运行过程中陷入死循环时,对所述驱动源进行记录;
当所述驱动源被记录的次数达到隔离次数时,对所述驱动源进行隔离。
2.根据权利要求1所述的方法,其特征在于,所述驱动源包括目标对象和所述目标功能,所述目标对象为对所述目标功能进行请求的对象,所述驱动源对应的逻辑与所述目标功能对应;
所述对所述驱动源进行记录,包括:
在故障记录表中对所述目标对象和所述目标功能的对应关系进行记录,所述故障记录表为二维记录表;
根据所述故障记录表确定所述目标对象和/或所述目标功能被记录的次数。
3.根据权利要求2所述的方法,其特征在于,所述目标进程中运行有第一对象集,所述第一对象集中的对象用于对所述目标功能集中的功能进行请求;
所述当所述驱动源被记录的次数达到隔离次数时,对所述驱动源进行隔离,包括:
当所述目标对象和所述目标功能的对应关系被记录的次数达到第一隔离次数时,屏蔽所述目标对象对所述目标功能的请求;
和/或,
当所述目标对象被记录的次数达到第二隔离次数时,禁止所述目标对象对所述目标功能集进行请求,所述目标功能集包括所述目标功能;
和/或,
当所述目标功能被记录的次数达到第三隔离次数时,屏蔽所述第一对象集对所述目标功能的请求,所述第一对象集包括所述目标对象。
4.根据权利要求1至3任一所述的方法,其特征在于,所述方法还包括:
当所述目标进程在运行过程中被异常关闭时,对所述驱动源进行记录。
5.根据权利要求1至3任一所述的方法,其特征在于,所述方法还包括:
将所述目标进程中记录的故障共享至至少一个关联进程,所述关联进程为与所述目标进程属于同类型的进程。
6.根据权利要求1至3任一所述的方法,其特征在于,所述根据获取到的驱动源驱动目标进程以所述驱动源对应的逻辑运行之前,还包括:
对获取到的所述驱动源在缓存区进行缓存;
所述方法还包括:
当所述目标进程在运行过程中发生故障时,从所述缓存区中读取所述驱动源,并对所述驱动源进行记录;
若所述目标进程在运行中未发生故障,当所述目标进程以所述驱动源对应的逻辑运行结束后,从所述缓存区中删除所述驱动源。
7.一种目标进程的运行保护装置,其特征在于,所述装置包括:
第一获取模块,用于获取驱动源,所述驱动源用于对所述目标进程进行驱动;所述目标进程包括根定时器,所述根定时器的前置定时器以及所述根定时器的后置定时器,所述前置定时器为触发所述根定时器开始计时的前一个定时器,所述根定时器的延迟为0且所述前置定时器的延迟不为0,所述后置定时器为在所述根定时器的计时逻辑中被连续触发的延迟为0的定时器;
第一运行模块,用于根据所述驱动源驱动所述目标进程按照所述驱动源对应的逻辑运行,所述目标进程用于对目标功能集中的至少一个功能进行调用,所述驱动源对应的逻辑用于在所述目标功能集中确定所述目标进程调用的目标功能;
设置模块,用于在所述目标进程中的根定时器中设置深度变量,所述深度变量用于表示所述后置定时器的数量;
确定模块,用于当所述根定时器中的深度变量的数值大于预设数值时,确定所述目标进程陷入死循环;
第一记录模块,用于当所述目标进程在运行过程中陷入死循环时,对所述驱动源进行记录;
第一隔离模块,用于当所述驱动源被记录的次数达到隔离次数时,对所述驱动源进行隔离。
8.根据权利要求7所述的装置,其特征在于,所述驱动源包括目标对象和所述目标功能,所述目标对象为对所述目标功能进行请求的对象,所述驱动源对应的逻辑与所述目标功能对应;
所述第一记录模块,还用于在故障记录表中对所述目标对象和所述目标功能的对应关系进行记录,所述故障记录表为二维记录表;根据所述故障记录表确定所述目标对象和/或所述目标功能被记录的次数。
9.根据权利要求8所述的装置,其特征在于,所述目标进程中运行有第一对象集,所述第一对象集中的对象用于对所述目标功能集中的功能进行请求;
所述第一隔离模块,还用于当所述目标对象和所述目标功能的对应关系被记录的次数达到第一隔离次数时,屏蔽所述目标对象对所述目标功能的请求;
所述第一隔离模块,还用于当所述目标对象被记录的次数达到第二隔离次数时,禁止所述目标对象对所述目标功能集进行请求,所述目标功能集包括所述目标功能;
所述第一隔离模块,还用于当所述目标功能被记录的次数达到第三隔离次数时,屏蔽所述第一对象集对所述目标功能的请求,所述第一对象集包括所述目标对象。
10.根据权利要求7至9任一所述的装置,其特征在于,所述第一记录模块,还用于当所述目标进程在运行过程中被异常关闭时,对所述驱动源进行记录。
11.一种服务器,其特征在于,所述服务器包括处理器和存储器,所述存储器中存储有至少一段程序,所述至少一段程序由所述处理器加载并执行以实现如权利要求1至6任一所述的目标进程的运行保护方法。
12.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一段程序,所述至少一段程序由处理器加载并执行以实现如权利要求1至6任一所述的目标进程的运行保护方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810445205.9A CN108579093B (zh) | 2018-05-10 | 2018-05-10 | 目标进程的运行保护方法、装置及可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810445205.9A CN108579093B (zh) | 2018-05-10 | 2018-05-10 | 目标进程的运行保护方法、装置及可读介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108579093A CN108579093A (zh) | 2018-09-28 |
CN108579093B true CN108579093B (zh) | 2023-11-03 |
Family
ID=63636553
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810445205.9A Active CN108579093B (zh) | 2018-05-10 | 2018-05-10 | 目标进程的运行保护方法、装置及可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108579093B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112657180A (zh) * | 2020-12-21 | 2021-04-16 | 北京像素软件科技股份有限公司 | 游戏运行方法和装置、电子设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101467183A (zh) * | 2006-04-13 | 2009-06-24 | Igt公司 | 游戏机上的远程内容管理及资源共享及其实施方法 |
CN102938035A (zh) * | 2012-11-08 | 2013-02-20 | 西安交通大学 | 一种在虚拟机内部的驱动隔离系统与方法 |
CN103279367A (zh) * | 2013-05-07 | 2013-09-04 | 浪潮电子信息产业股份有限公司 | 一种内核驱动隔离系统 |
KR20140115855A (ko) * | 2013-03-22 | 2014-10-01 | 삼성전자주식회사 | 이동 통신 시스템에서 네이버 설정 방법 및 장치 |
CN104394009A (zh) * | 2014-10-29 | 2015-03-04 | 中国建设银行股份有限公司 | 一种故障信息的处理方法及装置 |
CN106133704A (zh) * | 2015-01-19 | 2016-11-16 | 华为技术有限公司 | 内存故障隔离方法和装置 |
CN106407083A (zh) * | 2016-10-26 | 2017-02-15 | 华为技术有限公司 | 故障检测方法及装置 |
CN107080944A (zh) * | 2017-05-26 | 2017-08-22 | 合肥泽诺信息科技有限公司 | 一种检测网络游戏外挂的方法 |
-
2018
- 2018-05-10 CN CN201810445205.9A patent/CN108579093B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101467183A (zh) * | 2006-04-13 | 2009-06-24 | Igt公司 | 游戏机上的远程内容管理及资源共享及其实施方法 |
CN101467184A (zh) * | 2006-04-13 | 2009-06-24 | Igt公司 | 用于在游戏设备上集成远程主机和本地显示内容的方法和装置 |
CN102938035A (zh) * | 2012-11-08 | 2013-02-20 | 西安交通大学 | 一种在虚拟机内部的驱动隔离系统与方法 |
KR20140115855A (ko) * | 2013-03-22 | 2014-10-01 | 삼성전자주식회사 | 이동 통신 시스템에서 네이버 설정 방법 및 장치 |
CN103279367A (zh) * | 2013-05-07 | 2013-09-04 | 浪潮电子信息产业股份有限公司 | 一种内核驱动隔离系统 |
CN104394009A (zh) * | 2014-10-29 | 2015-03-04 | 中国建设银行股份有限公司 | 一种故障信息的处理方法及装置 |
CN106133704A (zh) * | 2015-01-19 | 2016-11-16 | 华为技术有限公司 | 内存故障隔离方法和装置 |
CN106407083A (zh) * | 2016-10-26 | 2017-02-15 | 华为技术有限公司 | 故障检测方法及装置 |
CN107080944A (zh) * | 2017-05-26 | 2017-08-22 | 合肥泽诺信息科技有限公司 | 一种检测网络游戏外挂的方法 |
Non-Patent Citations (1)
Title |
---|
VM内部隔离驱动程序的可靠性架构;郑豪;软件学报;正文第1-16页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108579093A (zh) | 2018-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11030052B2 (en) | Data protection using checkpoint restart for cluster shared resources | |
US8689214B2 (en) | Replication of machine instances in a computing environment | |
US8769697B2 (en) | Methods and systems for automated network scanning in dynamic virtualized environments | |
US20090150872A1 (en) | Dynamic code update | |
CN107077412A (zh) | 单层或n层应用的自动化根本原因分析 | |
EP4095693A1 (en) | Data packet synchronization method and apparatus, device, and storage medium | |
US10983825B2 (en) | Processing for multiple containers are deployed on the physical machine | |
Raj et al. | Scalable and lightweight {CTF} infrastructures using application containers (pre-recorded presentation) | |
US20140068191A1 (en) | Synchronous and ansynchronous discard scans based on the type of cache memory | |
US20150120674A1 (en) | Virtual program installation and state restoration | |
EP3226153B1 (en) | Impact analysis-based task redoing method, impact analysis calculation apparatus and one-click reset apparatus | |
CN110808839A (zh) | 一种区块链异常数据的处理方法、装置、设备和介质 | |
CN116863058B (zh) | 一种基于gpu的视频数据处理系统 | |
CN108579093B (zh) | 目标进程的运行保护方法、装置及可读介质 | |
WO2023221979A1 (zh) | 虚拟机器人的控制方法、装置、设备、存储介质及程序产品 | |
CN112516598B (zh) | 游戏服务故障的处理方法、装置、服务器及介质 | |
CN113181637B (zh) | 游戏回放方法和系统 | |
US8171345B2 (en) | Disablement of an exception generating operation of a client system | |
EP3980955A1 (en) | Subscription to edits of blockchain transaction | |
DE112012006736T5 (de) | Empfangen eines Update-Moduls durch Zugreifen auf eine Netzwerkstelle | |
KR101665041B1 (ko) | 게임 서버의 종료 처리 방법 및 시스템 | |
CN108829824B (zh) | 互联网运营活动中的资源处理方法及装置 | |
CN110515553B (zh) | 一种卷删除方法及设备 | |
CN112861612A (zh) | 拍摄图像的方法、装置、电子设备及存储介质 | |
CN116351063B (zh) | 技能释放处理方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |