CN106970817B - 故障确定方法及装置 - Google Patents

故障确定方法及装置 Download PDF

Info

Publication number
CN106970817B
CN106970817B CN201710184000.5A CN201710184000A CN106970817B CN 106970817 B CN106970817 B CN 106970817B CN 201710184000 A CN201710184000 A CN 201710184000A CN 106970817 B CN106970817 B CN 106970817B
Authority
CN
China
Prior art keywords
project
compiling
failure
result
compiled
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
Application number
CN201710184000.5A
Other languages
English (en)
Other versions
CN106970817A (zh
Inventor
邢旺
虞连飞
张晓亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Xiaomi Mobile Software Co Ltd
Original Assignee
Beijing Xiaomi Mobile Software Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Xiaomi Mobile Software Co Ltd filed Critical Beijing Xiaomi Mobile Software Co Ltd
Priority to CN201710184000.5A priority Critical patent/CN106970817B/zh
Publication of CN106970817A publication Critical patent/CN106970817A/zh
Application granted granted Critical
Publication of CN106970817B publication Critical patent/CN106970817B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/103Workflow collaboration or project management

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Strategic Management (AREA)
  • Human Resources & Organizations (AREA)
  • General Physics & Mathematics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Marketing (AREA)
  • Data Mining & Analysis (AREA)
  • Economics (AREA)
  • Software Systems (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本公开提供一种故障确定方法及装置,该方法包括:获取目标系统中已编译完成的项目的编译结果;根据所述编译结果,判断已编译完成的项目中编译失败的项目是否满足预设故障项目定位条件,该故障项目定位条件包括:编译失败的项目的个数达到预设阈值、编译失败的项目为连续的项目、且编译失败的项目对应的日志中记录的编译错误信息均相同;若满足,则将编译失败的项目中排序第一的项目确定为故障项目。由此可见,本公开技术方案可以从编译服务器中获取目标系统中已编译完成的多个项目的编译结果,根据已编译完成的多个项目的编译结果,确定故障项目,实现了故障项目的自动排查,而不必管理人员从所有项目中进行排查,从而提高了故障项目的查找效率。

Description

故障确定方法及装置
技术领域
本公开涉及通信技术领域,特别涉及一种故障确定方法及装置。
背景技术
目前,智能终端的系统的开发流程如下:开发人员编写各自负责的项目的代码,之后将各项目的代码上传至代码服务器,编译服务器从代码服务器中下载系统中各项目的代码,对各项目的代码进行编译,在各项目的代码均编译成功后,将各项目的代码合并生成完整的系统,其中,实现同一功能的代码称为同一项目的代码,系统中包括多个项目。在编译服务器对各项目的代码进行编译的环节中,当出现编译失败的情况时,需要管理人员从各项目中查找出存在问题的项目,查找效率低。
发明内容
为了解决上述问题,本公开提供一种故障确定方法及装置。
具体地,本公开是通过如下技术方案实现的:
根据本公开实施例的第一方面,提供一种故障确定方法,所述方法包括:
获取目标系统中已编译完成的项目的编译结果;
根据已获取的编译结果,判断所述已编译完成的项目中编译失败的项目是否满足预设故障项目定位条件,其中,所述故障项目定位条件包括:编译失败的项目的个数达到预设阈值、编译失败的项目为连续的项目、且编译失败的项目对应的日志中记录的编译错误信息均相同;
当所述已编译完成的项目中编译失败的项目满足所述故障项目定位条件时,将所述编译失败的项目中排序第一的项目确定为故障项目。
本公开一实施例中,所述方法还包括:
当所述已编译完成的项目中编译失败的项目满足所述故障项目定位条件时,生成编译环境复位指令,其中,所述编译环境复位指令用于控制编译服务器将编译环境复位至最近一次编译成功的项目所对应的编译环境;
将所述编译环境复位指令发送给所述目标系统对应的编译服务器。
本公开一实施例中,所述根据获取的编译结果,判断所述已编译完成的项目中编译失败的项目是否满足预设故障项目定位条件,包括:
从已获取的编译结果中,按照各项目的编译顺序依次获得各项目的编译结果;
针对每个项目,如果项目的编译结果为编译成功,则将参数count和参数keyword复位至初始值count=0,keyword=“”;
如果项目的编译结果为编译失败,则将参数count的取值加1,对编译失败的项目的日志进行解析,获得所述日志中编译失败位置的字符串,并将所述字符串赋值给参数keyword;
判断参数count的值是否达到预设阈值、且参数keyword的值是否始终为同一字符串。
本公开一实施例中,在所述将所述编译失败的项目中排序第一的项目确定为故障项目之后,还包括:
向目标账号发送通知消息,其中,所述通知消息用于提示管理人员检查所述故障项目。
本公开一实施例中,所述目标账号包括下述至少一种:邮箱账号、手机号码,及社交应用账号。
根据本公开实施例的第二方面,提供一种故障确定装置,所述装置包括:
获取模块,被配置为获取目标系统中已编译完成的项目的编译结果;
判断模块,被配置为根据所述获取模块获取到的编译结果,判断所述已编译完成的项目中编译失败的项目是否满足预设故障项目定位条件,其中,所述故障项目定位条件包括:编译失败的项目的个数达到预设阈值、编译失败的项目为连续的项目、且编译失败的项目对应的日志中记录的编译错误信息均相同;
确定模块,被配置为在所述判断模块的判断结果为是的情况下,将所述编译失败的项目中排序第一的项目确定为故障项目。
本公开一实施例中,所述装置还包括:
生成模块,被配置为在所述判断模块的判断结果为是的情况下,生成编译环境复位指令,其中,所述编译环境复位指令用于控制编译服务器将编译环境复位至最近一次编译成功的项目所对应的编译环境;
第一发送模块,被配置为将所述生成模块生成的编译环境复位指令发送给所述目标系统对应的编译服务器。
本公开一实施例中,所述判断模块,包括:
编译结果获得子模块,被配置为从所述获取模块获取到的编译结果中,按照各项目的编译顺序依次获得各项目的编译结果;
参数处理子模块,被配置为针对每个项目,当项目的编译结果为编译成功时,将参数count和参数keyword复位至初始值count=0,keyword=“”;
当项目的编译结果为编译失败时,将参数count的取值加1,对编译失败的项目的日志进行解析,获得所述日志中编译失败位置的字符串,并将所述字符串赋值给参数keyword;
判断子模块,被配置为判断参数count的值是否达到预设阈值、且参数keyword的值是否始终为同一字符串。
本公开一实施例中,所述装置还包括:
第二发送模块,被配置为向目标账号发送通知消息,其中,所述通知消息用于提示管理人员检查所述故障项目。
本公开一实施例中,所述目标账号包括下述至少一种:邮箱账号、手机号码,及社交应用账号。
根据本公开实施例的第三方面,提供一种故障确定装置,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
获取目标系统中已编译完成的项目的编译结果;
根据已获取的编译结果,判断所述已编译完成的项目中编译失败的项目是否满足预设故障项目定位条件,其中,所述故障项目定位条件包括:编译失败的项目的个数达到预设阈值、编译失败的项目为连续的项目、且编译失败的项目对应的日志中记录的编译错误信息均相同;
当所述已编译完成的项目中编译失败的项目满足所述故障项目定位条件时,将所述编译失败的项目中排序第一的项目确定为故障项目。
考虑到如果多个连续的项目编译失败且编译失败的原因都相同,则该连续的多个项目中排序第一项目为故障项目的概率非常大,在此情况下,本公开实施例可以从编译服务器中获取目标系统中已编译完成的多个项目的编译结果,根据已编译完成的多个项目的编译结果,确定故障项目,实现了故障项目的自动排查,而不必管理人员从所有项目中进行排查,从而提高了故障项目的查找效率。
本公开实施例可以在连续出现编译失败的项目时,将编译服务器的编译环境复位至项目能够正常编译的编译环境,从而将编译失败的影响降至最低。
本公开实施例可以及时将编译失败的情况及引发编译失败的故障项目通知给管理人员,以便管理人员可以及时采取相应的处理措施。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1A是本公开根据一示例性实施例示出的一种故障确定系统的架构图;
图1B是本公开根据一示例性实施例示出的一种故障确定方法的流程图;
图2是本公开根据一示例性实施例示出的图1B中步骤102的一种实施方式的流程图;
图3是本公开根据一示例性实施例示出的另一种故障确定方法的流程图;
图4是本公开根据一示例性实施例示出的一种故障确定装置的框图;
图5是本公开根据一示例性实施例示出的另一种故障确定装置的框图;
图6是本公开根据一示例性实施例示出的另一种故障确定装置的框图;
图7是本公开根据一示例性实施例示出的另一种故障确定装置的框图;
图8是本公开根据一示例性实施例示出的一种用于故障确定装置的一结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
为了便于理解,下面首先结合图1A对本公开提供的故障确定方法的应用场景进行介绍。
如图1A所示,图1A是本公开根据一示例性实施例示出的一种故障确定系统的架构图,该系统中包括:Master主服务器110、代码服务器120、多台编译服务器130和多个开发人员140,其中,开发人员140编写系统的各个项目的代码,之后将编写好的项目代码上传至代码服务器120,代码服务器120存储开发人员140编写的项目代码,之后,代码服务器120按照系统的类型,将属于不同类型的项目的代码发送至各类型对应的编译服务器130中,编译服务器130对代码服务器120发送来的项目的代码进行逐条编译,并将编译结果发送给Master主服务器110,Master主服务器110执行本公开提供的故障确定方法。
需要说明的是,为了便于表示,图1A中仅示出了编译服务器A、B、C和D四台编译服务器,及开发人员1、2、3和4四个开发人员,在实际应用中,可以为任意数量的编译服务器及开发人员,本公开对此不作限定。
下面对本公开提供的一种故障确定方法进行介绍。
如图1B所示,图1B是本公开根据一示例性实施例示出的一种故障确定方法的流程图,该方法可以包括以下步骤:
在步骤101中,获取目标系统中已编译完成的项目的编译结果。
可以理解的是,智能终端的供应商通常推出不止一种机型,而不同的机型有不同的系统,此外,一台编译服务器只编译一种系统的项目的代码,在开发系统时,代码服务器将属于同一系统的项目代码发送至该系统对应的编译服务器。
需要说明的是,考虑到系统是以代码为基础构建的,本公开实施例中,将实现同一功能的代码成为同一项目的代码,系统中包括多个项目。
本公开实施例中,目标系统指的是一台编译服务器对应的一种系统,编译结果包括:编译失败和编译成功。
在步骤102中,根据已获取的编译结果,判断已编译完成的项目中编译失败的项目是否满足预设故障项目定位条件,该故障项目定位条件包括:编译失败的项目的个数达到预设阈值、编译失败的项目为连续的项目、且编译失败的项目对应的日志中记录的编译错误信息均相同;若判断结果为是,则执行步骤103。
本公开实施例中,编译服务器在对项目的代码进行编译时,会生成相应的日志,该日志中记录编译的相关信息,当项目编译失败时,可以从该日志中提取出编译失败的相关错误信息,该错误信息通常为一组字符串。
例如,获取目标系统中的项目1、项目2、项目3、项目4、项目5、项目6和项目7的编译结果,其中,项目的编译顺序依次递减,项目的编译结果表1所示:
项目名称 编译结果
项目1 编译成功
项目2 编译失败
项目3 编译失败
项目4 编译失败
项目5 编译失败
项目6 编译失败
项目7 编译失败
表1
通过表1可以看出,编译失败的项目包括:项目2、项目3、项目4、项目5、项目6和项目7,共计6个项目,且这6个编译失败的项目为编译顺序连续的项目,如果编译失败的项目的个数6大于预设阈值,且这6个项目的日志中记录的编译失败的错误信息相同,则这6个编译失败的项目满足故障项目定位条件。
需要说明的是,本公开实施例中,预设阈值可以根据经验设置为6,也可以根据实际需求进行设置,本公开对此不作限定。
在步骤103中,将编译失败的项目中排序第一的项目确定为故障项目。
接上一实例,如果项目2、项目3、项目4、项目5、项目6和项目7这6个项目满足故障项目定位条件,则将项目2确定为故障项目。
由上述实施例可见,考虑到如果多个连续的项目编译失败且编译失败的原因都相同,则该连续的多个项目中排序第一项目为故障项目的概率非常大,在此情况下,该实施例可以从编译服务器中获取目标系统中已编译完成的多个项目的编译结果,根据已编译完成的多个项目的编译结果,确定故障项目,实现了故障项目的自动排查,而不必管理人员从所有项目中进行排查,从而提高了故障项目的查找效率。
如图2所示,图2是本公开根据一示例性实施例示出的图1B中步骤102的一种实施方式的流程图,该实施例中可以通过两个参数,实现步骤102的操作,此时,步骤102可以包括以下步骤:
在步骤201中,从已获取的编译结果中,按照各项目的编译顺序依次获得各项目的编译结果。
需要说明的是,编译服务器在对同一系统的各个项目的代码进行编译时,是按照一定的顺序对项目进行编译的。
本公开实施例中,按照编译服务器编译项目的顺序,依次获得已编译的各项目的编译结果。
例如,编译服务器编译项目的顺序是:先编译项目1、再编译项目2、再编译项目3,……,再编译项目N,本公开实施例中,按照编译服务器的编译顺序,依次获得项目1、项目2、项目3,……,项目N的编译结果。
在步骤202中,针对每个项目,当项目的编译结果为编译成功时,将参数count和参数keyword复位至初始值count=0,keyword=“”;当项目的编译结果为编译失败时,将参数count的取值加1,对编译失败的项目的日志进行解析,获得日志中编译失败位置的字符串,并将该字符串赋值给参数keyword。
本公开实施例中,keyword=“”指的是keyword取值为空。
以表1为例,项目2至项目7的日志的编译失败的错误信息均为“字符串K”,由于项目1的编译结果为编译成功,因此参数count=0,keyword=“”;由于项目2的编译结果为编译失败,因此参数count=0+1=1,keyword=字符串K;由于项目3的编译结果为编译失败,因此参数count=1+1=2,keyword=字符串K;以此类推,由于项目7的编译结果为编译失败,因此参数count=6,keyword=字符串K。
在步骤203中,判断参数count的值是否达到预设阈值、且参数keyword的值是否始终为同一字符串。
本公开实施例中,如果参数count的值达到预设阈值、且参数keyword的值始终为同一字符串,则确定已编译完成的项目中编译失败的项目满足预设故障项目定位条件。
接上一实例,参数count=6,判断6是否大于预设阈值,且keyword值是否相同,即是否均为字符串K。
考虑到项目编译失败会破坏编译服务器的编译环境,造成后续的项目无法正常编译,为了保证后续的项目能够正常编译,本公开提供的另一种实施例中,该实施例可以在图1B或图2所示实施例的基础上,增加以下步骤:
当已编译完成的项目中编译失败的项目满足故障项目定位条件时,生成编译环境复位指令,将该编译环境复位指令发送给目标系统对应的编译服务器,其中,该编译环境复位指令用于控制编译服务器将编译环境复位至最近一次编译成功的项目所对应的编译环境。
考虑到项目编译成功通常不会破坏编译服务器的编译环境,且在该编译环境下项目可以正常编译,因此,本公开实施例中,可以使用相关技术中的clean脚本将编译服务器的编译环境的复位至最近一次编译成功的项目所对应的编译环境。
本公开实施例中,clean脚本可以预先存储于编译服务器中,只有当该编译服务器接收到Master主服务器发送的指令时才运行clean脚本;或者,Master主服务器向编译服务器发送的指令中包含clean脚本,该编译服务器在接收到该指令时运行clean脚本。
由上述实施例可见,该实施例可以在连续出现编译失败的项目时,将编译服务器的编译环境复位至项目能够正常编译的编译环境,从而将编译失败的影响降至最低。
为了便于理解,下面结合实际的操作流程对本公开技术方案进行完整的介绍。
如图3所示,图3是本公开根据一示例性实施例示出的另一种故障确定方法的流程图,该方法可以包括以下步骤:
在步骤301中,获取项目N的编译结果。
本公开实施例中,首先建立一个循环侦测服务(实际上为一个程序),该服务一直运行在后台,实时监控编译服务器的工作状态,获取最新的编译结果(本公开实施例中,项目N的编译结果为最新的编译结果)。
在步骤302中,判断编译结果是否为编译失败,若判断结果为是,则执行步骤303,否则设置N=N+1,参数count=0,keyword=“”,继续获取项目N+1的编译结果。
本公开实施例中,检测项目(一段代码对应一个项目)的编译结果,如果编译结果是编译成功,则将count参数和keyword参数复位并继续监控下一个项目。
在步骤303中,设置参数count=count+1。
在步骤304中,对编译失败的项目N的日志进行解析,并记录keyword_N。
本公开实施例中,对编译失败的项目的日志进行解析,通过搜索日志中失败的位置,获取失败的字符串,并将结果赋给keyword_N。
在步骤305中,判断是否满足:
count≥M且keyword_N-M+1~=keyword_N-1=keyword_N;若判断结果为是,则执行步骤306,否则设置N=N+1,参数count=0,keyword=“”,继续获取项目N+1的编译结果。
本公开实施例中,设定M=6,判断count的值是否大于等于6(即是否连续失败了6次及以上)且每次失败的keyword是否相匹配,如果满足这两个条件则触发自动clean脚本,该脚本会将当前的编译环境复位到最近一次成功的位置,保证后面的编译项目不会受到影响;如果上述条件不满足,则将count参数和keyword参数复位并继续监控下一个项目。
在步骤306中,确定故障项目,并触发编译服务器复位编译环境;之后设置N=N+1,参数count=0,keyword=“”,继续获取项目N+1的编译结果。
本公开实施例中,每完成一轮监测之后,重新将count参数和keyword初始化,进行下一轮监测。
本公开实施例中,可以对各系统的共用项目例如framework、sdk等项目进行监测,也可以对各系统独有的项目进行监测,本公开对此不作限定。
本公开提供的另一种实施例中,该实施例提供的故障确定方法,还可以在将编译失败的项目中排序第一的项目确定为故障项目的步骤之后,增加以下步骤:
向目标账号发送通知消息,其中,所述通知消息用于提示管理人员检查所述故障项目。
本公开实施例中,目标账号可以包括下述至少一种:邮箱账号、手机号码,及社交应用账号,此时,可以向管理人员的邮箱账号对应的邮箱发送用于提示管理人员检查故障项目的通知邮件,或者可以向管理人员的手机号码发送用于提示管理人员检查故障项目的通知短信,或者可以向管理人员的社交账号对应的账号发送用于提示管理人员检查故障项目的通知信息。
由上述实施例可见,该实施例可以及时将编译失败的情况及引发编译失败的故障项目通知给管理人员,以便管理人员可以及时采取相应的处理措施。
应当注意,尽管在附图中以特定顺序描述了本公开方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
与前述故障确定方法的实施例对应,本公开还提供了故障确定装置的实施例。
如图4所示,图4是本公开根据一示例性实施例示出的一种故障确定装置的框图,该装置可以包括:
获取模块410,被配置为获取目标系统中已编译完成的项目的编译结果;
判断模块420,被配置为根据所述获取模块410获取到的编译结果,判断所述已编译完成的项目中编译失败的项目是否满足预设故障项目定位条件,其中,所述故障项目定位条件包括:编译失败的项目的个数达到预设阈值、编译失败的项目为连续的项目、且编译失败的项目对应的日志中记录的编译错误信息均相同;
确定模块430,被配置为在所述判断模块420的判断结果为是的情况下,将所述编译失败的项目中排序第一的项目确定为故障项目。
由上述实施例可见,考虑到如果多个连续的项目编译失败且编译失败的原因都相同,则该连续的多个项目中排序第一项目为故障项目的概率非常大,在此情况下,该实施例可以从编译服务器中获取目标系统中已编译完成的多个项目的编译结果,根据已编译完成的多个项目的编译结果,确定故障项目,实现了故障项目的自动排查,而不必管理人员从所有项目中进行排查,从而提高了故障项目的查找效率。
如图5所示,图5是本公开根据一示例性实施例示出的另一种故障确定装置的框图,该实施例可以在图4所示实施例的基础上,该装置还可以包括:
生成模块510,被配置为在所述判断模块420的判断结果为是的情况下,生成编译环境复位指令,其中,所述编译环境复位指令用于控制编译服务器将编译环境复位至最近一次编译成功的项目所对应的编译环境;
第一发送模块520,被配置为将所述生成模块510生成的编译环境复位指令发送给所述目标系统对应的编译服务器。
由上述实施例可见,该实施例可以在连续出现编译失败的项目时,将编译服务器的编译环境复位至项目能够正常编译的编译环境,从而将编译失败的影响降至最低。
如图6所示,图6是本公开根据一示例性实施例示出的另一种故障确定装置的框图,该实施例可以在图4或图5所示实施例的基础上,所述判断模块420,可以包括:
编译结果获得子模块421,被配置为从所述获取模块410获取到的编译结果中,按照各项目的编译顺序依次获得各项目的编译结果;
参数处理子模块422,被配置为针对每个项目,当项目的编译结果为编译成功时,将参数count和参数keyword复位至初始值count=0,keyword=“”;
当项目的编译结果为编译失败时,将参数count的取值加1,对编译失败的项目的日志进行解析,获得所述日志中编译失败位置的字符串,并将所述字符串赋值给参数keyword;
判断子模块423,被配置为判断参数count的值是否达到预设阈值、且参数keyword的值是否始终为同一字符串。
如图7所示,图7是本公开根据一示例性实施例示出的另一种故障确定装置的框图,该实施例可以在图4~图6所示任一装置实施例的基础上,该装置还可以包括:
第二发送模块710,被配置为向目标账号发送通知消息,其中,所述通知消息用于提示管理人员检查所述故障项目。
本公开提供的另一种实施例中,该实施例可以在图7所示实施例的基础上,本公开实施例中的目标账号可以包括下述至少一种:邮箱账号、手机号码,及社交应用账号。
由上述实施例可见,该实施例可以及时将编译失败的情况及引发编译失败的故障项目通知给管理人员,以便管理人员可以及时采取相应的处理措施。
上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本公开方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
相应的,本公开还提供了一种故障确定装置,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为:获取目标系统中已编译完成的项目的编译结果;根据已获取的编译结果,判断所述已编译完成的项目中编译失败的项目是否满足预设故障项目定位条件,其中,所述故障项目定位条件包括:编译失败的项目的个数达到预设阈值、编译失败的项目为连续的项目、且编译失败的项目对应的日志中记录的编译错误信息均相同;当所述已编译完成的项目中编译失败的项目满足所述故障项目定位条件时,将所述编译失败的项目中排序第一的项目确定为故障项目。
图8是根据一示例性实施例示出的一种用于故障确定装置800的一结构示意图。例如,装置800可以被提供为一服务器。参照图8,装置800包括处理组件822,其进一步包括一个或多个处理器,以及由存储器832所代表的存储器资源,用于存储可由处理部件822的执行的指令,例如应用程序。存储器832中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件822被配置为执行指令,以执行本公开技术方案提供的故障确定方法,该方法包括:获取目标系统中已编译完成的项目的编译结果;根据已获取的编译结果,判断所述已编译完成的项目中编译失败的项目是否满足预设故障项目定位条件,其中,所述故障项目定位条件包括:编译失败的项目的个数达到预设阈值、编译失败的项目为连续的项目、且编译失败的项目对应的日志中记录的编译错误信息均相同;当所述已编译完成的项目中编译失败的项目满足所述故障项目定位条件时,将所述编译失败的项目中排序第一的项目确定为故障项目。
装置800还可以包括一个电源组件826被配置为执行装置800的电源管理,一个有线或无线网络接口850被配置为将装置800连接到网络,和一个输入输出(I/O)接口858。装置800可以操作基于存储在存储器832的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器832,上述指令可由装置800的处理组件822执行以完成本公开技术方案提供的上述设备控制方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变换,这些变型、用途或者适应性变换遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (11)

1.一种故障确定方法,其特征在于,所述方法包括:
获取目标系统中已编译完成的项目的编译结果;
根据已获取的编译结果,判断所述已编译完成的项目中编译失败的项目是否满足预设故障项目定位条件,其中,所述故障项目定位条件包括:编译失败的项目的个数达到预设阈值、编译失败的项目为连续的项目、且编译失败的项目对应的日志中记录的编译错误信息均相同;
当所述已编译完成的项目中编译失败的项目满足所述故障项目定位条件时,将所述编译失败的项目中排序第一的项目确定为故障项目。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述已编译完成的项目中编译失败的项目满足所述故障项目定位条件时,生成编译环境复位指令,其中,所述编译环境复位指令用于控制编译服务器将编译环境复位至最近一次编译成功的项目所对应的编译环境;
将所述编译环境复位指令发送给所述目标系统对应的编译服务器。
3.根据权利要求1所述的方法,其特征在于,所述根据已获取的编译结果,判断所述已编译完成的项目中编译失败的项目是否满足预设故障项目定位条件,包括:
从已获取的编译结果中,按照各项目的编译顺序依次获得各项目的编译结果;
针对每个项目,如果项目的编译结果为编译成功,则将参数count和参数keyword复位至初始值count=0,keyword=“”;
如果项目的编译结果为编译失败,则将参数count的取值加1,对编译失败的项目的日志进行解析,获得所述日志中编译失败位置的字符串,并将所述字符串赋值给参数keyword;
判断参数count的值是否达到预设阈值、且参数keyword的值是否始终为同一字符串。
4.根据权利要求1所述的方法,其特征在于,在所述将所述编译失败的项目中排序第一的项目确定为故障项目之后,还包括:
向目标账号发送通知消息,其中,所述通知消息用于提示管理人员检查所述故障项目。
5.根据权利要求4所述的方法,其特征在于,所述目标账号包括下述至少一种:邮箱账号、手机号码,及社交应用账号。
6.一种故障确定装置,其特征在于,所述装置包括:
获取模块,被配置为获取目标系统中已编译完成的项目的编译结果;
判断模块,被配置为根据所述获取模块获取到的编译结果,判断所述已编译完成的项目中编译失败的项目是否满足预设故障项目定位条件,其中,所述故障项目定位条件包括:编译失败的项目的个数达到预设阈值、编译失败的项目为连续的项目、且编译失败的项目对应的日志中记录的编译错误信息均相同;
确定模块,被配置为在所述判断模块的判断结果为是的情况下,将所述编译失败的项目中排序第一的项目确定为故障项目。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
生成模块,被配置为在所述判断模块的判断结果为是的情况下,生成编译环境复位指令,其中,所述编译环境复位指令用于控制编译服务器将编译环境复位至最近一次编译成功的项目所对应的编译环境;
第一发送模块,被配置为将所述生成模块生成的编译环境复位指令发送给所述目标系统对应的编译服务器。
8.根据权利要求6所述的装置,其特征在于,所述判断模块,包括:
编译结果获得子模块,被配置为从所述获取模块获取到的编译结果中,按照各项目的编译顺序依次获得各项目的编译结果;
参数处理子模块,被配置为针对每个项目,当项目的编译结果为编译成功时,将参数count和参数keyword复位至初始值count=0,keyword=“”;
当项目的编译结果为编译失败时,将参数count的取值加1,对编译失败的项目的日志进行解析,获得所述日志中编译失败位置的字符串,并将所述字符串赋值给参数keyword;
判断子模块,被配置为判断参数count的值是否达到预设阈值、且参数keyword的值是否始终为同一字符串。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第二发送模块,被配置为向目标账号发送通知消息,其中,所述通知消息用于提示管理人员检查所述故障项目。
10.根据权利要求9所述的装置,其特征在于,所述目标账号包括下述至少一种:邮箱账号、手机号码,及社交应用账号。
11.一种故障确定装置,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
获取目标系统中已编译完成的项目的编译结果;
根据已获取的编译结果,判断所述已编译完成的项目中编译失败的项目是否满足预设故障项目定位条件,其中,所述故障项目定位条件包括:编译失败的项目的个数达到预设阈值、编译失败的项目为连续的项目、且编译失败的项目对应的日志中记录的编译错误信息均相同;
当所述已编译完成的项目中编译失败的项目满足所述故障项目定位条件时,将所述编译失败的项目中排序第一的项目确定为故障项目。
CN201710184000.5A 2017-03-24 2017-03-24 故障确定方法及装置 Active CN106970817B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710184000.5A CN106970817B (zh) 2017-03-24 2017-03-24 故障确定方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710184000.5A CN106970817B (zh) 2017-03-24 2017-03-24 故障确定方法及装置

Publications (2)

Publication Number Publication Date
CN106970817A CN106970817A (zh) 2017-07-21
CN106970817B true CN106970817B (zh) 2019-11-15

Family

ID=59330065

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710184000.5A Active CN106970817B (zh) 2017-03-24 2017-03-24 故障确定方法及装置

Country Status (1)

Country Link
CN (1) CN106970817B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107479941A (zh) * 2017-09-26 2017-12-15 深圳市茁壮网络股份有限公司 一种程序容错方法及程序容错装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7810081B2 (en) * 2006-08-22 2010-10-05 International Business Machines Corporation Compilation error isolation, optimization and resolution
US20120317440A1 (en) * 2011-06-10 2012-12-13 Oracle International Corporation, Compiler internal fault handling and reporting
CN105094783B (zh) * 2014-05-19 2019-12-13 腾讯科技(深圳)有限公司 安卓应用稳定性测试的方法及装置
US9658907B2 (en) * 2014-06-24 2017-05-23 Ca, Inc. Development tools for refactoring computer code
CN104077227B (zh) * 2014-07-08 2017-01-04 大连海事大学 一种基于b/s架构的程序源代码的评判系统及方法
CN106293683B (zh) * 2015-06-12 2020-06-19 小米科技有限责任公司 一种项目的编译方法及装置
CN105549959A (zh) * 2015-12-04 2016-05-04 小米科技有限责任公司 编译检查方法及装置
CN106445627A (zh) * 2016-10-14 2017-02-22 郑州云海信息技术有限公司 一种代码集成编译中问题定位的方法及装置

Also Published As

Publication number Publication date
CN106970817A (zh) 2017-07-21

Similar Documents

Publication Publication Date Title
KR102483025B1 (ko) 운영 유지 시스템 및 방법
CN105512029B (zh) 一种测试智能终端的方法、服务器及系统
Starnini et al. Random walks on temporal networks
CN101930400B (zh) Sdk自动化测试系统及方法
JP6686529B2 (ja) 脆弱性分析のための自律型推論システム
US10664385B1 (en) Debugging in an actor-based system
CN107562556B (zh) 故障的恢复方法、恢复装置及存储介质
CN108762911A (zh) 定时任务管理方法、装置、计算机设备及存储介质
ES2812765T3 (es) Aparato, sistema y método para procesar datos de registro de aplicaciones
CN105512015A (zh) 一种安卓目标应用崩溃统计方法和装置
CN110048901B (zh) 一种电力通信网的故障定位方法、装置及设备
CN110048932A (zh) 邮件监控功能的有效性检测方法、装置、设备及存储介质
CN106970817B (zh) 故障确定方法及装置
CN116400987B (zh) 持续集成方法、装置、电子设备及存储介质
US20170169045A1 (en) Systems and methods for detecting matching content in code files
Riganelli et al. Healing data loss problems in android apps
CN114430894A (zh) 通过扫描规则引擎最小化生产中断
Schäfer et al. Increasing availability of workflows executing in a pervasive environment
CN111162938A (zh) 数据处理系统及方法
Jamali et al. Fault localization algorithm in computer networks by employing a genetic algorithm
US11102091B2 (en) Analyzing SCADA systems
CN106445784B (zh) 一种信息监控方法及装置
CN113296991B (zh) 异常检测方法以及装置
Sahoo et al. A framework for optimization of regression testing of web services using slicing
CN101894162B (zh) 一种动态网络事件关联与联动的实现方法和装置

Legal Events

Date Code Title Description
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