一种线程挂起的处理方法及装置制造方法及图纸

技术编号:11466753 阅读:98 留言:0更新日期:2015-05-17 02:26
本发明专利技术公开了一种线程挂起的处理方法及装置,属于计算机技术领域。方法包括:业务进程中的业务线程初始化时,向监控线程上报线程信息,线程信息中至少包括线程标识以及运行周期;监控线程检测业务线程的运行时间是否超出了业务进程对应的运行周期;当检测到业务线程的运行时间超出了业务进程的运行周期时,确定线程处于挂起状态;当到达监控线程周期性发送心跳信息的时间时,监控线程根据业务线程的线程标识生成警告信息,并将警告信息携带于心跳信息中发送给监控进程。本发明专利技术可以及时检测到业务线程处于挂起状态并作出响应进行上报,实现了对业务线程的监控,提高了网站系统中的对各业务进程的管理效率。

【技术实现步骤摘要】
一种线程挂起的处理方法及装置
本专利技术涉及计算机
,特别涉及一种线程挂起的处理方法及装置。
技术介绍
随着互联网技术的发展,网站系统中处理的业务越来越多。在网站系统部署时会针对不同业务部署多个独立的业务进程,来分别处理不同的业务逻辑。在处理某些较为复杂的业务逻辑时,为了满足功能性需求会会对处理该业务逻辑的业务进程中使用多线程技术,创建多个线程来分别处理该业务逻辑。专利技术人发现现有技术至少存在以下问题:在多线程系统中,线程间通信和线程同步等工作在整个系统中占有相当大的比例,而线程在提供服务时会出现预料不到的问题导致发生线程挂起的情况,进而使得线程无法正常工作,导致系统业务无法正常进行处理,降低了网站运营的效率。
技术实现思路
为了解决现有技术的问题,本专利技术实施例提供了一种线程挂起的处理方法及装置。所述技术方案如下:一方面,提供了一种线程挂起的处理方法,在业务进程中设置有监控线程,所述方法包括:所述业务进程中的业务线程初始化时,向所述监控线程上报线程信息,所述线程信息中至少包括线程标识以及运行周期;所述监控线程检测所述业务线程的运行时间是否超出了所述业务进程对应的运行周期;当检测到所述业务线程的运行时间超出了所述业务进程的运行周期时,确定所述线程处于挂起状态;当到达所述监控线程周期性发送心跳信息的时间时,所述监控线程根据所述业务线程的线程标识生成警告信息,并将所述警告信息携带于心跳信息中发送给监控进程。可选的,所述业务进程中的业务线程初始化时,向所述监控线程上报线程信息之后,所述方法还包括:根据接收到所述线程信息的时间,记录所述业务线程的运行时间戳。可选的,所述监控线程检测所述业务线程的运行时间是否超出了所述业务进程对应的运行周期,包括:将当前时间与所述业务线程的运行时间戳进行求差运算;如果所述业务线程的运行时间戳与所述当前时间的时间差大于所述业务进程对应的运行周期,则确定所述业务线程的运行时间超出了所述业务进程对应的运行周期。可选的,所述根据接收到所述线程信息的时间,记录所述业务线程的运行时间戳之后,所述方法还包括:所述业务线程在执行完毕自身的业务逻辑之后,向所述监控线程上报更新时间戳的请求;所述监控线程接收到所述更新时间戳的请求之后,根据接收到所述更新时间戳的请求的时间更新所述业务线程的运行时间戳。可选的,所述监控线程检测所述业务线程的运行时间是否超出了所述业务进程对应的运行周期,包括:将当前时间与更新后的所述业务线程的运行时间戳进行求差运算;如果所述业务线程的运行时间戳与更新后的所述当前时间的时间差大于所述业务进程对应的运行周期,则确定所述业务线程的运行时间超出了所述业务进程对应的运行周期。另一方面,提供了一种线程挂起的处理方法,所述方法包括:接收各业务进程中的监控线程周期性发送的心跳信息;检测接收到的心跳信息中是否携带警告信息;如果检测到所述心跳信息中携带警告信息,则获取预先存储的配置信息,所述配置信息中包括联系人标识以及通信类型;根据所述警告信息生成第一提示信息,并选取所述通信类型对应的通信方式将所述第一提示信息发送给所述联系人标识对应的联系人。可选的,所述监控进程接收各业务进程中的监控线程周期性发送的心跳信息之后,所述方法还包括:在心跳信息表中将发送心跳信息的业务进程对应的心跳时间更新为接收到所述心跳信息的时间;其中,所述心跳信息表中保存有各业务进程对应的心跳时间与心跳间隔的关联关系。可选的,所述方法还包括:周期性检测所述心跳信息表中是否存在未按照指定的心跳间隔上报心跳信息的业务进程如果检测到存在未按照指定的心跳间隔上报心跳信息的业务进程,则确定所述检测到的业务进程处于非正常工作状态。可选的,所述确定所述检测到的业务进程处于非正常工作状态之后,所述方法还包括:获取所述检测到的业务进程的进程标识,并根据所述应用标识生成第二提示信息;获取预先存储的配置信息,所述配置信息中包括联系人标识以及通信类型;选取所述通信类型对应的通信方式将所述第二提示信息发送给所述联系人标识对应的联系人。可选的,所述方法还包括:接收更新配置信息的请求,所述更新配置信息的请求中携带有更新后的联系人标识和/或更新后的通信类型;根据所述更新后的联系人标识和/或更新后的通信类型,对所述配置信息进行更新。另一方面,提供了一种线程挂起的处理装置,在业务进程中设置有监控线程,所述装置包括:第一上报模块,用于所述业务进程中的业务线程初始化时,向所述监控线程上报线程信息,所述线程信息中至少包括线程标识以及运行周期;第一检测模块,用于所述监控线程检测所述业务线程的运行时间是否超出了所述业务进程对应的运行周期;第一确定模块,用于当检测到所述业务线程的运行时间超出了所述业务进程的运行周期时,确定所述线程处于挂起状态;处理模块,用于当到达所述监控线程周期性发送心跳信息的时间时,所述监控线程根据所述业务线程的线程标识生成警告信息,并将所述警告信息携带于心跳信息中发送给监控进程。可选的,所述装置还包括:记录模块,用于根据接收到所述线程信息的时间,记录所述业务线程的运行时间戳。可选的,所述第一检测模块,包括:第一运算单元,用于将当前时间与所述业务线程的运行时间戳进行求差运算;第一确定单元,用于如果所述业务线程的运行时间戳与所述当前时间的时间差大于所述业务进程对应的运行周期,则确定所述业务线程的运行时间超出了所述业务进程对应的运行周期。可选的,所述装置还包括:第二上报模块,用于所述业务线程在执行完毕自身的业务逻辑之后,向所述监控线程上报更新时间戳的请求;第一更新模块,用于所述监控线程接收到所述更新时间戳的请求之后,根据接收到所述更新时间戳的请求的时间更新所述业务线程的运行时间戳。可选的,所述第一检测模块,包括:第二运算单元,用于将当前时间与更新后的所述业务线程的运行时间戳进行求差运算;第二确定单元,用于如果所述业务线程的运行时间戳与更新后的所述当前时间的时间差大于所述业务进程对应的运行周期,则确定所述业务线程的运行时间超出了所述业务进程对应的运行周期。另一方面,提供了一种线程挂起的处理装置,所述装置包括:第一接收模块,用于接收各业务进程中的监控线程周期性发送的心跳信息;第二检测模块,用于检测接收到的心跳信息中是否携带警告信息;第一获取模块,用于如果检测到所述心跳信息中携带警告信息,则获取预先存储的配置信息,所述配置信息中包括联系人标识以及通信类型;第一提示模块,用于根据所述警告信息生成第一提示信息,并选取所述通信类型对应的通信方式将所述第一提示信息发送给所述联系人标识对应的联系人。可选的,所述装置还包括:第二更新模块,用于在心跳信息表中将发送心跳信息的业务进程对应的心跳时间更新为接收到所述心跳信息的时间;其中,所述心跳信息表中保存有各业务进程对应的心跳时间与心跳间隔的关联关系。可选的,所述装置还包括:第三检测模块,用于周期性检测所述心跳信息表中是否存在未按照指定的心跳间隔上报心跳信息的业务进程第二确定模块,用于如果检测到存在未按照指定的心跳间隔上报心跳信息的业务进程,则确定所述检测到的业务进程处于非正常工作状态。可选的,所述装置还包括:第二获取模块,用于获取所述检测到的业务进程的进程标识,并根据所述应用标识生成第二提示信息;第三获取模块,用于获本文档来自技高网...

【技术保护点】
一种线程挂起的处理方法,其特征在于,在业务进程中设置有监控线程,所述方法包括:所述业务进程中的业务线程初始化时,向所述监控线程上报线程信息,所述线程信息中至少包括线程标识以及运行周期;所述监控线程检测所述业务线程的运行时间是否超出了所述业务进程对应的运行周期;当检测到所述业务线程的运行时间超出了所述业务进程的运行周期时,确定所述线程处于挂起状态;当到达所述监控线程周期性发送心跳信息的时间时,所述监控线程根据所述业务线程的线程标识生成警告信息,并将所述警告信息携带于心跳信息中发送给监控进程。

【技术特征摘要】
1.一种线程挂起的处理方法,其特征在于,在业务进程中设置有监控线程,所述方法包括:所述业务进程中的业务线程初始化时,向所述监控线程上报线程信息,所述线程信息中至少包括线程标识以及运行周期;所述监控线程检测所述业务线程的运行时间是否超出了所述业务进程对应的运行周期;当检测到所述业务线程的运行时间超出了所述业务进程的运行周期时,确定所述线程处于挂起状态;当到达所述监控线程周期性发送心跳信息的时间时,所述监控线程根据处于挂起状态的业务线程的线程标识生成警告信息,并将所述警告信息携带于心跳信息中发送给监控进程,所述警告信息用于指示所述监控进程获取预先存储的配置信息并生成第一提示信息,所述配置信息中包括联系人标识以及通信类型,所述警告信息还用于指示所述监控进程选取所述通信类型对应的通信方式将所述第一提示信息发送给所述联系人标识对应的联系人。2.根据权利要求1所述的方法,其特征在于,所述业务进程中的业务线程初始化时,向所述监控线程上报线程信息之后,所述方法还包括:根据接收到所述线程信息的时间,记录所述业务线程的运行时间戳。3.根据权利要求2所述的方法,其特征在于,所述监控线程检测所述业务线程的运行时间是否超出了所述业务进程对应的运行周期,包括:将当前时间与所述业务线程的运行时间戳进行求差运算;如果所述业务线程的运行时间戳与所述当前时间的时间差大于所述业务进程对应的运行周期,则确定所述业务线程的运行时间超出了所述业务进程对应的运行周期。4.根据权利要求2所述的方法,其特征在于,所述根据接收到所述线程信息的时间,记录所述业务线程的运行时间戳之后,所述方法还包括:所述业务线程在执行完毕自身的业务逻辑之后,向所述监控线程上报更新时间戳的请求;所述监控线程接收到所述更新时间戳的请求之后,根据接收到所述更新时间戳的请求的时间更新所述业务线程的运行时间戳。5.根据权利要求4所述的方法,其特征在于,所述监控线程检测所述业务线程的运行时间是否超出了所述业务进程对应的运行周期,包括:将当前时间与更新后的所述业务线程的运行时间戳进行求差运算;如果所述业务线程的运行时间戳与更新后的所述当前时间的时间差大于所述业务进程对应的运行周期,则确定所述业务线程的运行时间超出了所述业务进程对应的运行周期。6.一种线程挂起的处理方法,其特征在于,所述方法包括:接收各业务进程中的监控线程周期性发送的心跳信息;检测接收到的心跳信息中是否携带警告信息,所述警告信息是所述监控线程在检测到业务线程的运行时间超出了业务进程对应的运行周期后确定所述业务线程处于挂起状态时,根据处于挂起状态的业务线程的标识生成并发送的;如果检测到所述心跳信息中携带警告信息,则获取预先存储的配置信息,所述配置信息中包括联系人标识以及通信类型;根据所述警告信息生成第一提示信息,并选取所述通信类型对应的通信方式将所述第一提示信息发送给所述联系人标识对应的联系人。7.根据权利要求6所述的方法,其特征在于,所述监控进程接收各业务进程中的监控线程周期性发送的心跳信息之后,所述方法还包括:在心跳信息表中将发送心跳信息的业务进程对应的心跳时间更新为接收到所述心跳信息的时间;其中,所述心跳信息表中保存有各业务进程对应的心跳时间与心跳间隔的关联关系。8.根据权利要求7所述的方法,其特征在于,所述方法还包括:周期性检测所述心跳信息表中是否存在未按照指定的心跳间隔上报心跳信息的业务进程;如果检测到存在未按照指定的心跳间隔上报心跳信息的业务进程,则确定所述检测到的业务进程处于非正常工作状态。9.根据权利要求8所述的方法,其特征在于,所述确定所述检测到的业务进程处于非正常工作状态之后,所述方法还包括:获取所述检测到的业务进程的进程标识,并根据所述检测到的业务进程的进程标识生成第二提示信息;获取预先存储的配置信息,所述配置信息中包括联系人标识以及通信类型;选取所述通信类型对应的通信方式将所述第二提示信息发送给所述联系人标识对应的联系人。10.根据权利要求6所述的方法,其特征在于,所述方法还包括:接收更新配置信息的请求,所述更新配置信息的请求中携带有更新后的联系人标识和/或更新后的通信类型;根据所述更新后的联系人标识和/或更新后的通信类型,对所述配置信息进行更新。11.一种线程挂起的处理装置,其特征在于...

【专利技术属性】
技术研发人员:谭家华
申请(专利权)人:广州华多网络科技有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1