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

文档序号:8298925阅读:165来源:国知局
一种线程挂起的处理方法及装置的制造方法
【技术领域】
[0001]本发明涉及计算机技术领域,特别涉及一种线程挂起的处理方法及装置。
【背景技术】
[0002]随着互联网技术的发展,网站系统中处理的业务越来越多。在网站系统部署时会针对不同业务部署多个独立的业务进程,来分别处理不同的业务逻辑。在处理某些较为复杂的业务逻辑时,为了满足功能性需求会会对处理该业务逻辑的业务进程中使用多线程技术,创建多个线程来分别处理该业务逻辑。
[0003]发明人发现现有技术至少存在以下问题:
[0004]在多线程系统中,线程间通信和线程同步等工作在整个系统中占有相当大的比例,而线程在提供服务时会出现预料不到的问题导致发生线程挂起的情况,进而使得线程无法正常工作,导致系统业务无法正常进行处理,降低了网站运营的效率。

【发明内容】

[0005]为了解决现有技术的问题,本发明实施例提供了一种线程挂起的处理方法及装置。所述技术方案如下:
[0006]一方面,提供了一种线程挂起的处理方法,在业务进程中设置有监控线程,所述方法包括:
[0007]所述业务进程中的业务线程初始化时,向所述监控线程上报线程信息,所述线程信息中至少包括线程标识以及运行周期;
[0008]所述监控线程检测所述业务线程的运行时间是否超出了所述业务进程对应的运行周期;
[0009]当检测到所述业务线程的运行时间超出了所述业务进程的运行周期时,确定所述线程处于挂起状态;
[0010]当到达所述监控线程周期性发送心跳信息的时间时,所述监控线程根据所述业务线程的线程标识生成警告信息,并将所述警告信息携带于心跳信息中发送给监控进程。
[0011]可选的,所述业务进程中的业务线程初始化时,向所述监控线程上报线程信息之后,所述方法还包括:
[0012]根据接收到所述线程信息的时间,记录所述业务线程的运行时间戳。
[0013]可选的,所述监控线程检测所述业务线程的运行时间是否超出了所述业务进程对应的运行周期,包括:
[0014]将当前时间与所述业务线程的运行时间戳进行求差运算;
[0015]如果所述业务线程的运行时间戳与所述当前时间的时间差大于所述业务进程对应的运行周期,则确定所述业务线程的运行时间超出了所述业务进程对应的运行周期。
[0016]可选的,所述根据接收到所述线程信息的时间,记录所述业务线程的运行时间戳之后,所述方法还包括:
[0017]所述业务线程在执行完毕自身的业务逻辑之后,向所述监控线程上报更新时间戳的请求;
[0018]所述监控线程接收到所述更新时间戳的请求之后,根据接收到所述更新时间戳的请求的时间更新所述业务线程的运行时间戳。
[0019]可选的,所述监控线程检测所述业务线程的运行时间是否超出了所述业务进程对应的运行周期,包括:
[0020]将当前时间与更新后的所述业务线程的运行时间戳进行求差运算;
[0021]如果所述业务线程的运行时间戳与更新后的所述当前时间的时间差大于所述业务进程对应的运行周期,则确定所述业务线程的运行时间超出了所述业务进程对应的运行周期。
[0022]另一方面,提供了一种线程挂起的处理方法,所述方法包括:
[0023]接收各业务进程中的监控线程周期性发送的心跳信息;
[0024]检测接收到的心跳信息中是否携带警告信息;
[0025]如果检测到所述心跳信息中携带警告信息,则获取预先存储的配置信息,所述配置信息中包括联系人标识以及通信类型;
[0026]根据所述警告信息生成第一提示信息,并选取所述通信类型对应的通信方式将所述第一提示信息发送给所述联系人标识对应的联系人。
[0027]可选的,所述监控进程接收各业务进程中的监控线程周期性发送的心跳信息之后,所述方法还包括:
[0028]在心跳信息表中将发送心跳信息的业务进程对应的心跳时间更新为接收到所述心跳信息的时间;
[0029]其中,所述心跳信息表中保存有各业务进程对应的心跳时间与心跳间隔的关联关系O
[0030]可选的,所述方法还包括:
[0031]周期性检测所述心跳信息表中是否存在未按照指定的心跳间隔上报心跳信息的业务进程
[0032]如果检测到存在未按照指定的心跳间隔上报心跳信息的业务进程,则确定所述检测到的业务进程处于非正常工作状态。
[0033]可选的,所述确定所述检测到的业务进程处于非正常工作状态之后,所述方法还包括:
[0034]获取所述检测到的业务进程的进程标识,并根据所述应用标识生成第二提示信息;
[0035]获取预先存储的配置信息,所述配置信息中包括联系人标识以及通信类型;
[0036]选取所述通信类型对应的通信方式将所述第二提示信息发送给所述联系人标识对应的联系人。
[0037]可选的,所述方法还包括:
[0038]接收更新配置信息的请求,所述更新配置信息的请求中携带有更新后的联系人标识和/或更新后的通信类型;
[0039]根据所述更新后的联系人标识和/或更新后的通信类型,对所述配置信息进行更新。
[0040]另一方面,提供了一种线程挂起的处理装置,在业务进程中设置有监控线程,所述装置包括:
[0041]第一上报模块,用于所述业务进程中的业务线程初始化时,向所述监控线程上报线程信息,所述线程信息中至少包括线程标识以及运行周期;
[0042]第一检测模块,用于所述监控线程检测所述业务线程的运行时间是否超出了所述业务进程对应的运行周期;
[0043]第一确定模块,用于当检测到所述业务线程的运行时间超出了所述业务进程的运行周期时,确定所述线程处于挂起状态;
[0044]处理模块,用于当到达所述监控线程周期性发送心跳信息的时间时,所述监控线程根据所述业务线程的线程标识生成警告信息,并将所述警告信息携带于心跳信息中发送给监控进程。
[0045]可选的,所述装置还包括:
[0046]记录模块,用于根据接收到所述线程信息的时间,记录所述业务线程的运行时间戳。
[0047]可选的,所述第一检测模块,包括:
[0048]第一运算单元,用于将当前时间与所述业务线程的运行时间戳进行求差运算;
[0049]第一确定单元,用于如果所述业务线程的运行时间戳与所述当前时间的时间差大于所述业务进程对应的运行周期,则确定所述业务线程的运行时间超出了所述业务进程对应的运行周期。
[0050]可选的,所述装置还包括:
[0051]第二上报模块,用于所述业务线程在执行完毕自身的业务逻辑之后,向所述监控线程上报更新时间戳的请求;
[0052]第一更新模块,用于所述监控线程接收到所述更新时间戳的请求之后,根据接收到所述更新时间戳的请求的时间更新所述业务线程的运行时间戳。
[0053]可选的,所述第一检测模块,包括:
[0054]第二运算单元,用于将当前时间与更新后的所述业务线程的运行时间戳进行求差运算;
[0055]第二确定单元,用于如果所述业务线程的运行时间戳与更新后的所述当前时间的时间差大于所述业务进程对应的运行周期,则确定所述业务线程的运行时间超出了所述业务进程对应的运行周期。
[0056]另一方面,提供了一种线程挂起的处理装置,所述装置包括:
[0057]第一接收模块,用于接收各业务进程中的监控线程周期性发送的心跳信息;
[0058]第二检测模块,用于检测接收到的心跳信息中是否携带警告信息;
[0059]第一获取模块,用于如果检测到所述心跳信息中携带警告信息,则获取预先存储的配置信息,所述配置信息中包括联系人标识以及通信类型;
[0060]第一提示模块,用于根据所述警告信息生成第一提示信息,并选取所述通信类型对应的通信方式将所述第一提示信息发送给所述联系人标识对应的联系人。
[0061]可选的,所述装置还包括:
[0062]第二更新模块,用于在心跳信息表中将发送心跳信息的业务进程对应的心跳时间更新为接收到所述心跳信息的时间;
[0063]其中,所述心跳信息表中保存有各业务进程对应的心跳时间与心跳间隔的关联关系O
[0064]可选的,所述装置还包括:
[0065]第三检测模块,用于周期性检测所述心跳信息表中是否存在未按照指定的心跳间隔上报心跳信息的业务进程
[0066]第二确定模块,用于如果检测到存在未按照指定的心跳间隔上报心跳信息的业务进程,则确定所述检测到的业务进程处于非正常工作状态。
[0067]可选的,所述装置还包括:
[0068]第二获取模块,用于获取所述检测到的业务进程的进程标识,并根据所述应用标识生成第二提不?目息;
[0069]第三获取模块,用于获取预先存储的配置信息,所
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1