CN106940671B - 一种集群中任务线程运行的监控方法、装置及*** - Google Patents

一种集群中任务线程运行的监控方法、装置及*** Download PDF

Info

Publication number
CN106940671B
CN106940671B CN201610004928.6A CN201610004928A CN106940671B CN 106940671 B CN106940671 B CN 106940671B CN 201610004928 A CN201610004928 A CN 201610004928A CN 106940671 B CN106940671 B CN 106940671B
Authority
CN
China
Prior art keywords
task
time
cluster
thread
current
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
CN201610004928.6A
Other languages
English (en)
Other versions
CN106940671A (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.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201610004928.6A priority Critical patent/CN106940671B/zh
Publication of CN106940671A publication Critical patent/CN106940671A/zh
Application granted granted Critical
Publication of CN106940671B publication Critical patent/CN106940671B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)
  • Measuring And Recording Apparatus For Diagnosis (AREA)

Abstract

本申请实施例公开了一种集群中任务线程运行的监控方法、装置及***。该方法包括:集群中的任务服务器基于心跳时间关联通道以第一预设时间为周期在数据库中更新存储任务线程的当前心跳时间信信息;所述集群中的监听服务器以第二预设时间为周期获取所述数据库中任务线程的当前心跳时间信息;所述监听服务器计算所述任务线程的当前心跳时间信息与所述第一预设时间的时间之和,比较所述时间之和与当前时间的大小;所述监听服务器根据所述比较的结果控制所述集群中任务线程的运行。利用本申请实施例提供的技术方案可以无需直接依赖任务线程的任务状态,直接判断出任务线程是否正常运行,有效提高***稳定性,降低***风险。

Description

一种集群中任务线程运行的监控方法、装置及***
技术领域
本申请涉及互联网通信技术领域,特别涉及一种集群中任务线程运行的监控方法、装置及***。
背景技术
随着互联网通信技术的日新月异,一些大型的互联网***,由于业务复杂等原因,会出现大集群环境下多任务线程运行的场景。一般任务线程运行后,都需要一段较长时间来进行业务处理,监听服务器需要保证在该时间内各任务线程稳定的运行。
现有技术中为保证大集群环境下各任务线程稳定运行采取的监控方法主要包括两种:一种是收集报告模式,另一种是主动回查模式。在收集报告模式中需要将每一个任务线程的状态报告给监听服务器,当监听服务器在收集到某个任务线程的任务失败状态报告时将重启所述任务线程的任务副本来保证任务线程稳定的运行。在主动回查模式中每个任务线程都需要在监听服务器上进行注册,这样监听服务器可以按照一定周期进行逐个任务线程查询,通过回查模式获取任务线程的任务状态,根据查询任务状态来确定是否重启任务线程的任务副本来保证任务线程稳定的运行。但现有技术的所述收集报告模式的监控方法中会由于网络问题或者机器宕机的情况导致任务状态不能顺利报告给监听服务器,监听服务器只能根据一段时间没有收到任务状态报告的规则来重启任务线程的任务副本;所述主动回查模式的监控方法中也受限于机器、网络的因素无法准确的获取任务状态,所以也只能根据预设数量次的回查次数内未查到任务状态的条件来重启任务线程的副本。
因此,现有的上述两种监控方法中均无法准确获取任务状态,会出现任务没有消亡却盲目的重启任务线程的任务副本的情况,造成因所述任务线程重复启动的长时间并发报错,导致较大的监控开发成本和***风险。
发明内容
本申请实施例的目的是提供一种集群中任务线程运行的监控方法、装置及***,可以保证大集群环境下各任务线程稳定运行,提高***稳定性,降低***风险。
为解决上述技术问题,本申请实施例提供一种集群中任务线程运行的监控方法、装置及***是这样实现的:
一种集群中任务线程运行的监控方法,所述方法包括:
集群中的任务服务器基于心跳时间关联通道以第一预设时间为周期在数据库中更新存储任务线程的当前心跳时间信息;
所述集群中的监听服务器以第二预设时间为周期获取所述数据库中任务线程的当前心跳时间信息;
所述监听服务器计算所述任务线程的当前心跳时间信息与所述第一预设时间的时间之和,比较所述时间之和与当前时间的大小;
所述监听服务器根据所述比较的结果控制所述集群中任务线程的运行。
一种集群中任务线程运行的监控方法,所述方法包括:
以第二预设时间为周期获取所述数据库中任务线程的当前心跳时间信息;
计算所述任务线程的当前心跳时间信息与任务服务器在数据库中更新存储所述任务线程的当前心跳时间信息对应周期的第一预设时间的时间之和,比较所述时间之和与当前时间的大小;
根据所述比较的结果控制所述集群中任务线程的运行。
一种集群中任务线程运行的监控方法,所述方法包括:
在监听服务器启动任务线程时,检查所述任务线程是否与所述数据库之间建立了心跳时间关联通道;
当所述检查的结果为是时,基于心跳时间关联通道以第一预设时间为周期在数据库中更新存储任务线程的当前心跳时间信息。
一种集群中任务线程运行的监控装置,所述装置包括:
心跳时间信息获取模块,用于以第二预设时间为周期获取所述数据库中任务线程的当前心跳时间信息;
数据计算模块,用于计算所述任务线程的当前心跳时间信息与任务服务器在数据库中更新存储所述任务线程的当前心跳时间信息对应周期的第一预设时间的时间之和;
数据比较模块,用于比较所述数据计算模块计算得到的时间之和与当前时间的大小;
任务线程运行控制模块,用于根据所述数据比较模块比较的结果控制所述集群中任务线程的运行。
一种集群中任务线程运行的监控装置,所述装置包括:
检查模块,用于在监听服务器启动任务线程时,检查所述任务线程是否与所述数据库之间建立了心跳时间关联通道;
心跳时间信息更新模块,用于当所述检查模块的检查结果为是时,基于心跳时间关联通道以第一预设时间为周期在数据库中更新存储任务线程的当前心跳时间信息。
一种集群中任务线程运行的监控***,所述***包括:
监听服务器,用于以第二预设时间为周期获取所述数据库中任务线程的当前心跳时间信息;以及用于计算所述任务线程的当前心跳时间信息与任务服务器在数据库中更新存储所述任务线程的当前心跳时间信息对应周期的第一预设时间的时间之和,比较所述时间之和与当前时间的大小;以及用于根据所述比较的结果控制所述集群中任务线程的运行;
任务服务器,用于在监听服务器启动任务线程时,检查所述任务线程是否与所述数据库之间建立了心跳时间关联通道;以及用于当所述检查的结果为是时,基于心跳时间关联通道以第一预设时间为周期在数据库中更新存储任务线程的当前心跳时间信息;
数据库,用于存储集群中任务线程的当前心跳时间信息。
本申请实施例中任务服务器基于心跳时间关联通道将任务线程的当前心跳时间信息以第一预设时间为周期在数据库中更新存储,监听服务器从所述数据库中获取任务线程的当前心跳时间信息之后,计算出当前心跳时间信息与所述第一预设时间的时间之和,并通过比较所述时间之和与当前时间的大小的方式判断当前任务线程是否正常运行。最后,根据比较的结果可以有效的控制所述集群中任务线程的运行。与现有技术相比,利用本申请实施例可以无需直接依赖任务线程的任务状态,直接判断出任务线程是否正常运行,有效提高***稳定性,降低***风险。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的集群中任务线程运行的监控方法的一种实施例的流程示意图;
图2是本申请提供的集群中任务线程运行的监控方法的另一种实施例的流程示意图;
图3是本申请提供的集群中任务线程运行的监控方法的另一种实施例的流程示意图;
图4是本申请提供的集群中任务线程运行的监控装置的一种实施例的结构示意图;
图5是本申请提供的所述任务线程运行控制模块一种实施例的模块示意图;
图6是本申请提供的集群中任务线程运行的监控装置的另一种实施例的结构示意图;
图7是本申请提供的集群中任务线程运行的监控装置的另一种实施例的结构示意图;
图8是本申请提供的集群中任务线程运行的监控装置的另一种实施例的结构示意图;
图9是本申请提供的集群中任务线程运行的监控***的一种实施例的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
以下以几个具体的例子详细说明本申请实施例的具体实现。
以下首先介绍本申请一种集群中任务线程运行的监控方法的一种实施例。图1是本申请提供的集群中任务线程运行的监控方法的一种实施例的流程示意图,本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的***或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具体的如图1所示,所述方法可以包括:
S110:集群中的任务服务器基于心跳时间关联通道以第一预设时间为周期在数据库中更新存储任务线程的当前心跳时间信息。
在本申请实施例中,集群中的任务服务器可以基于心跳时间关联通道以第一预设时间为周期在数据库中更新存储任务线程的当前心跳时间信息。在实际应用中,一般所述集群中可以包括多个任务线程对应的任务服务器,以及监控所述多个任务线程的监听服务器。具体的,所述任务服务器可以包括客户端,也可以包括控制多个任务线程的服务器。具体的,所述第一预设时间可以根据实际应用情况设置,一般的,所述第一预设时间可以小于任务线程运行处理时间。具体的,所述心跳时间关联通道与相应的运行中的任务线程一一对应。当任务线程与数据库建立了心跳时间关联通道之后,可以保证将所述任务线程的心跳时间信息存储到数据库中。具体的,所述当前心跳时间信息可以是任务线程在运行期间所述任务服务器存储到数据库中的当前时间信息。例如,任务线程A正在运行,且距离上次在数据库中更新存储当前心跳时间信息已达到所述第一预设时间,那么任务服务器可以将所述任务线程A的当前时间信息存储到数据库中作为当前心跳时间信息。
进一步的,在实际应用中,当需要进行业务处理时,集群中可以为所述业务分配相应的任务线程,相应的,所述方法还可以包括:
所述监听服务器启动所述集群中的任务线程,并分别建立所述集群中的任务线程与所述数据库之间的心跳时间关联通道。
具体的,一般一个任务线程只可以与所述数据库建立一条心跳时间关联通道。当任务线程与所述数据库建立了心跳时间关联通道,基于所述心跳时间关联通道所述任务线程在运行期间就可以在所述数据库中更新存储当前心跳时间信息。相应的,所述方法还可以包括:
所述任务服务器在任务线程启动时,检查所述任务线程是否与所述数据库之间建立了心跳时间关联通道;
当所述检查的结果为是时,所述任务服务器基于所述心跳时间关联通道执行以第一预设时间为周期在数据库中更新存储所述任务线程的当前心跳时间信息的操作。
相应的,所述方法还可以包括:
当所述检查的结果为否时,停止所述任务线程当前任务的运行。
上述通过在任务线程启动运行时,检查所述任务线程是否与所述数据库之间建立了心跳时间关联通道可以保证当任务线程自身占有相应的心跳时间关联通道时,可以继续进行业务处理;一旦自身没有相应的心跳时间关联通道时,所述任务服务器可以停止当前任务的运行。这样同一业务的任务线程间也存在了互斥性,可以避免了任务没有消亡却盲目的重启任务线程的任务副本的情况,解决了因所述任务线程重复启动的长时间并发报错。
S120:所述集群中的监听服务器以第二预设时间为周期获取所述数据库中任务线程的当前心跳时间信息。
本申请实施例中,在步骤S110之后,所述集群中的监听服务器可以以第二预设时间为周期获取所述数据库中任务线程的当前心跳时间信息。具体的,所述第二预设时间可以根据实际应用情况设置,具体的,所述第二预设时间可以小于等于所述第一预设时间。例如,所述第一预设时间为30s时,所述第二预设时间可以为25s。
具体的,本申请实施例所述监听服务器可以通过数据库的API(ApplicationProgramming Interface,应用程序编程接口)接口访问数据库,获取任务线程的当前心跳时间信息。这里通过API接口进行访问可以有效避免网络问题导致的数据通信问题。
S130:所述监听服务器计算所述任务线程的当前心跳时间信息与所述第一预设时间的时间之和,比较所述时间之和与当前时间的大小。
本申请实施例中,在步骤S120之后,所述监听服务器可以计算所述任务线程的当前心跳时间信息与所述第一预设时间的时间之和,比较所述时间之和与当前时间的大小。具体的,例如任务线程A在数据库中的最近一次更新存储的当前心跳时间信息09:32:10,可以表示为Time_heartbeat=9*3600+32*60+10,假设第一预设时间为25s,可以表示为Time_first=25*60,那么可以计算得到所述任务线程A的当前心跳时间信息与所述第一预设时间的时间之和09:32:35,可以表示为Time_heartbeat+Time_first=9*3600+32*60+35。
具体的,当计算得到任务线程的当前心跳时间信息与所述第一预设时间的时间之和后,可以获取当前时间,比较所述时间之和与当前时间的大小。
S140:所述监听服务器根据所述比较的结果控制所述集群中任务线程的运行。
本申请实施例中,在步骤S130之后,所述监听服务器可以根据所述比较的结果控制所述集群中任务线程的运行。具体的,可以包括下述中的任意一种:
当所述比较的结果为所述时间之和小于所述当前时间时,所述监听服务器重启所述集群中所述时间之和所对应的任务线程的任务副本;
当所述比较的结果为所述时间之和大于等于所述当前时间时,所述监听服务器执行以第二预设时间为周期获取所述数据库中任务线程的当前心跳时间信息的操作来完成所述集群中任务线程的运行。
具体的,在实际应用中,以上述任务线程A所对应的所述时间之和Time_heartbeat+Time_first=9*3600+32*60+35为例,假设当前时间09:32:45,可以表示为Time_now=9*3600+32*60+45,那么可以得到Time_heartbeat+Time_first<Time_now,相应的,步骤S130中比较的结果为所述时间之和小于所述当前时间,所述监听服务器可以通过重启所述集群中所述时间之和所对应的任务线程的任务副本来保证任务线程可以继续运行,从而可以进行相应业务的处理。相应的,在所述监听服务器重启所述集群中所述时间之和所对应的任务线程的任务副本之后,所述方法还可以包括:
所述监听服务器建立所述任务线程与所述数据库之间的心跳时间关联通道。
具体的,当监听服务器任务线程的任务副本之后,建立所述任务线程与所述数据库之间的心跳时间关联通道,可以保证当前运行中的任务线程可以占有相应的心跳时间关联通道。这样无论所述任务线程对应的原始任务线程是否已经停止相应任务的运行,当原始任务线程发现已经不再占有对应心跳时间关联通道后会自动停止相应任务的运行。
具体的,在实际应用中,以上述任务线程A所对应的所述时间之和Time_heartbeat+Time_first=9*3600+32*60+35为例,假设当前时间09:32:45,可以表示为Time_now=9*3600+32*60+45,那么可以得到Time_heartbeat+Time_first>Time_now,相应的,步骤S130中比较的结果为所述时间之和大于所述当前时间,可以判断相应的任务线程正在稳定运行,所述任务线程可以继续以第一预设时间为周期在数据库中更新存储当前心跳时间信息。相应的,所述监听服务器可以继续执行S120以第二预设时间为周期获取所述数据库中任务线程的当前心跳时间信息的操作来完成所述集群中任务线程的运行。
由此可见,本申请一种集群中任务线程运行的监控方法的实施例中任务服务器基于心跳时间关联通道将任务线程的当前心跳时间信息以第一预设时间为周期在数据库中更新存储,监听服务器从所述数据库中获取任务线程的当前心跳时间信息之后,计算出当前心跳时间信息与所述第一预设时间的时间之和,并通过比较所述时间之和与当前时间的大小的方式判断当前任务线程是否正常运行。然后,根据比较的结果可以有效的控制所述集群中任务线程的运行。同时,通过在任务线程启动运行时检查所述任务线程是否与所述数据库之间建立了心跳时间关联通道的方式,可以保证同一业务的任务线程间也存在了互斥性,可以避免任务没有消亡却盲目的重启任务线程的任务副本的情况,有效解决了因所述任务线程重复启动的长时间并发报错。与现有技术相比,利用本申请实施例可以无需直接依赖任务线程的任务状态,直接判断出任务线程是否正常运行,同时解决了因所述任务线程重复启动的长时间并发报错,有效提高了***稳定性,降低了***风险。
考虑监听服务器为主的步骤,以下介绍本申请一种集群中任务线程运行的监控方法的另一种实施例,图2是本申请提供的集群中任务线程运行的监控方法的另一种实施例的流程示意图,本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具体的如图2所示,所述方法可以包括:
S210:以第二预设时间为周期获取所述数据库中任务线程的当前心跳时间信息。
S220:计算所述任务线程的当前心跳时间信息与任务服务器在数据库中更新存储所述任务线程的当前心跳时间信息对应周期的第一预设时间的时间之和,比较所述时间之和与当前时间的大小。
S230:根据所述比较的结果控制所述集群中任务线程的运行。
具体的,所述根据所述比较的结果控制所述集群中任务线程的运行可以包括下述中的任意一种:
当所述比较的结果为所述时间之和小于所述当前时间时,重启所述集群中所述时间之和所对应的任务线程的任务副本;
当所述比较的结果为所述时间之和大于等于所述当前时间时,执行以第二预设时间为周期获取所述数据库中任务线程的当前心跳时间信息的操作来完成所述集群中任务线程的运行。
进一步的,在所述重启所述集群中所述时间之和所对应的任务线程的任务副本之后,所述方法还可以包括:
建立所述任务线程与所述数据库之间的心跳时间关联通道。
进一步的,所述方法还可以包括:
启动所述集群中的任务线程,并分别建立所述集群中的任务线程与所述数据库之间的心跳时间关联通道。
由以上本申请实施例的技术方案可见,本申请中监听服务器以第二预设时间为周期从数据库中获取任务线程的当前心跳时间信息之后,计算出当前心跳时间信息与任务服务器在数据库中更新存储所述任务线程的当前心跳时间信息对应周期的第一预设时间的时间之和,并通过比较所述时间之和与当前时间的大小的方式判断当前任务线程是否正常运行。然后,根据比较的结果可以有效的控制所述集群中任务线程的运行。与现有技术相比,利用本申请实施例可以无需直接依赖任务线程的任务状态,直接判断出任务线程是否正常运行,有效提高了***稳定性,降低了***风险。
考虑任务服务器为主的步骤,以下介绍本申请一种集群中任务线程运行的监控方法的另一种实施例,图3是本申请提供的集群中任务线程运行的监控方法的另一种实施例的流程示意图,本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具体的如图3所示,所述方法可以包括:
S310:在监听服务器启动任务线程时,检查所述任务线程是否与所述数据库之间建立了心跳时间关联通道;
S320:当所述检查的结果为是时,基于心跳时间关联通道以第一预设时间为周期在数据库中更新存储任务线程的当前心跳时间信息。
进一步的,所述方法还可以包括:
当所述检查的结果为否时,停止所述任务线程当前任务的运行。
由以上本申请实施例的技术方案可见,本申请中任务服务器在任务线程启动运行时检查所述任务线程是否与所述数据库之间建立了心跳时间关联通道的方式,可以保证同一业务的任务线程间也存在了互斥性,可以避免任务没有消亡却盲目的重启任务线程的任务副本的情况,有效解决了因所述任务线程重复启动的长时间并发报错。然后,当建立了所述心跳时间关联通道后,基于心跳时间关联通道以第一预设时间为周期在数据库中更新存储任务线程的当前心跳时间信息,以使后续监听服务器可以基于所述当前心跳时间信息判断当前任务线程是否正常运行,进而可以有效的控制所述集群中任务线程的运行。与现有技术相比,利用本申请实施例可以解决了因所述任务线程重复启动的长时间并发报错,有效提高了***稳定性,降低了***风险。
本申请另一方面还提供一种集群中任务线程运行的监控装置的一种实施例,图4是本申请提供的集群中任务线程运行的监控装置的一种实施例的结构示意图,如图4所示,所述装置400可以包括:
心跳时间信息获取模块410,可以用于以第二预设时间为周期获取所述数据库中任务线程的当前心跳时间信息。
数据计算模块420,可以用于计算所述任务线程的当前心跳时间信息与任务服务器在数据库中更新存储所述任务线程的当前心跳时间信息对应周期的第一预设时间的时间之和。
数据比较模块430,可以用于比较所述数据计算模块计算得到的时间之和与当前时间的大小。
任务线程运行控制模块440,可以用于根据所述数据比较模块比较的结果控制所述集群中任务线程的运行。
本申请提供所述任务线程运行控制模块440的一种具体实施例方式。具体的,图5是本申请提供的所述任务线程运行控制模块一种实施例的模块示意图,如图5所示,本申请的一种实施例中所述任务线程运行控制模块440可以包括:
第一控制处理单元441,可以用于当所述比较的结果为所述时间之和小于所述当前时间时,重启所述集群中所述时间之和所对应的任务线程的任务副本;
第二控制处理单元442,可以用于当所述比较的结果为所述时间之和大于等于所述当前时间时,执行以第二预设时间为周期获取所述数据库中任务线程的当前心跳时间信息的操作来完成所述集群中任务线程的运行。
图6是本申请提供的集群中任务线程运行的监控装置的另一种实施例的结构示意图,另一种实施例中,如图6所示,所述装置400还可以包括:
第一关联通道建立模块450,可以用于在重启所述集群中所述时间之和所对应的任务线程的任务副本之后,建立所述任务线程与所述数据库之间的心跳时间关联通道。
图7是本申请提供的集群中任务线程运行的监控装置的另一种实施例的结构示意图,另一种实施例中,如图7所示,所述装置400还可以包括:
第二关联通道建立模块460,可以用于启动所述集群中的任务线程,并分别建立所述集群中的任务线程与所述数据库之间的心跳时间关联通道。
本申请中心跳时间信息获取模块410从所述数据库中以第二预设时间为周期获取任务线程的当前心跳时间信息;然后,数据计算模块420可以通过计算得到当前心跳时间信息与所述第一预设时间的时间之和;接着,数据比较模块430可以通过比较所述时间之和与当前时间的大小的方式判断当前任务线程是否正常运行。最后,任务线程运行控制模块440可以根据比较的结果有效的控制所述集群中任务线程的运行,提高***稳定性,降低***风险。
本申请另一方面还提供一种集群中任务线程运行的监控装置的另一种实施例,图8是本申请提供的集群中任务线程运行的监控装置的一种实施例的结构示意图,如图8所示,所述装置800可以包括:
检查模块810,可以用于在监听服务器启动任务线程时,检查所述任务线程是否与所述数据库之间建立了心跳时间关联通道;
心跳时间信息更新模块820,可以用于当所述检查模块的检查结果为是时,基于心跳时间关联通道以第一预设时间为周期在数据库中更新存储任务线程的当前心跳时间信息。
在另一个实施例中,所述装置800还可以包括:
任务运行停止模块,可以用于当所述检查模块的检查结果为否时,停止所述任务线程当前任务的运行。
本申请提供的检查模块810通过在任务线程启动运行时检查所述任务线程是否与所述数据库之间建立了心跳时间关联通道的方式,可以保证同一业务的任务线程间也存在了互斥性,可以避免任务没有消亡却盲目的重启任务线程的任务副本的情况,有效解决了因所述任务线程重复启动的长时间并发报错。
本申请另一方面还提供一种集群中任务线程运行的监控***,图9是本申请提供的集群中任务线程运行的监控***的一种实施例的结构示意图,如图9所示,所述***900可以包括:
监听服务器910,可以用于以第二预设时间为周期获取所述数据库中任务线程的当前心跳时间信息;以及用于计算所述任务线程的当前心跳时间信息与任务服务器在数据库中更新存储所述任务线程的当前心跳时间信息对应周期的第一预设时间的时间之和,比较所述时间之和与当前时间的大小;以及用于根据所述比较的结果控制所述集群中任务线程的运行;
任务服务器920,可以用于在监听服务器启动任务线程时,检查所述任务线程是否与所述数据库之间建立了心跳时间关联通道;以及用于当所述检查的结果为是时,基于心跳时间关联通道以第一预设时间为周期在数据库中更新存储任务线程的当前心跳时间信息;
数据库930,可以用于存储集群中任务线程的当前心跳时间信息。
由此可见,本申请一种集群中任务线程运行的监控方法、装置及***的实施例基于心跳时间关联通道将任务线程的当前心跳时间信息以第一预设时间为周期在数据库中更新存储,监听服务器从所述数据库中获取任务线程的当前心跳时间信息之后,计算出当前心跳时间信息与所述第一预设时间的时间之和,并通过比较所述时间之和与当前时间的大小的方式判断当前任务线程是否正常运行。然后,根据比较的结果可以有效的控制所述集群中任务线程的运行。同时,通过在任务线程启动运行时检查所述任务线程是否与所述数据库之间建立了心跳时间关联通道的方式,可以保证同一业务的任务线程间也存在了互斥性,可以避免任务没有消亡却盲目的重启任务线程的任务副本的情况,有效解决了因所述任务线程重复启动的长时间并发报错。与现有技术相比,利用本申请实施例可以无需直接依赖任务线程的任务状态,直接判断出任务线程是否正常运行,同时解决了因所述任务线程重复启动的长时间并发报错,有效提高了***稳定性,降低了***风险。
尽管本申请内容中提到数据库、监听服务器、和任务服务器之间的数据交互等之类的数据处理的描述,但是,本申请并不局限于必须是完全标准或者所提及的数据处理应用环境的情况。本申请中各个实施例中所涉及的上述描述仅是本申请中的一些实施例中的应用。当然,在符合本申请上述各实施例的中所述的处理方法步骤的其他无创造性的变形,仍然可以实现相同的申请,在此不再赘述。
虽然本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
上述实施例阐明装置或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。本申请可用于众多通用或专用的计算机***环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、移动通信终端、多处理器***、基于微处理器的***、可编程的电子设备、网络PC、小型计算机、大型计算机、包括以上任何***或设备的分布式计算环境等等。
虽然通过实施例描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的精神。

Claims (14)

1.一种集群中任务线程运行的监控方法,其特征在于,所述方法包括:
集群中的任务服务器基于心跳时间关联通道以第一预设时间为周期在数据库中更新存储任务线程的当前心跳时间信息;
所述集群中的监听服务器以第二预设时间为周期获取所述数据库中任务线程的当前心跳时间信息;
所述监听服务器计算所述任务线程的当前心跳时间信息与所述第一预设时间的时间之和,比较所述时间之和与当前时间的大小;
所述监听服务器根据所述比较的结果控制所述集群中任务线程的运行;
所述根据所述比较的结果控制所述集群中任务线程的运行,包括:
当所述比较的结果为所述时间之和小于所述当前时间时,重启所述集群中所述时间之和所对应的任务线程的任务副本。
2.一种集群中任务线程运行的监控方法,其特征在于,所述方法包括:
以第二预设时间为周期获取数据库中任务线程的当前心跳时间信息;
计算所述任务线程的当前心跳时间信息与任务服务器在数据库中更新存储所述任务线程的当前心跳时间信息对应周期的第一预设时间的时间之和,比较所述时间之和与当前时间的大小;
根据所述比较的结果控制所述集群中任务线程的运行;
所述根据所述比较的结果控制所述集群中任务线程的运行,包括:
当所述比较的结果为所述时间之和小于所述当前时间时,重启所述集群中所述时间之和所对应的任务线程的任务副本。
3.根据权利要求2所述的方法,其特征在于,所述根据所述比较的结果控制所述集群中任务线程的运行,还包括:
当所述比较的结果为所述时间之和大于等于所述当前时间时,执行以第二预设时间为周期获取所述数据库中任务线程的当前心跳时间信息的操作来完成所述集群中任务线程的运行。
4.根据权利要求3所述的方法,其特征在于,在所述重启所述集群中所述时间之和所对应的任务线程的任务副本之后,所述方法还包括:
建立所述任务线程与所述数据库之间的心跳时间关联通道。
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
启动所述集群中的任务线程,并分别建立所述集群中的任务线程与所述数据库之间的心跳时间关联通道。
6.一种集群中任务线程运行的监控方法,其特征在于,应用于任务服务器,所述方法包括:
在监听服务器启动任务线程时,检查所述任务线程是否与数据库之间建立了心跳时间关联通道;
当所述检查的结果为是时,基于心跳时间关联通道以第一预设时间为周期在数据库中更新存储任务线程的当前心跳时间信息。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
当所述检查的结果为否时,停止所述任务线程当前任务的运行。
8.一种集群中任务线程运行的监控装置,其特征在于,所述装置包括:
心跳时间信息获取模块,用于以第二预设时间为周期获取数据库中任务线程的当前心跳时间信息;
数据计算模块,用于计算所述任务线程的当前心跳时间信息与任务服务器在数据库中更新存储所述任务线程的当前心跳时间信息对应周期的第一预设时间的时间之和;
数据比较模块,用于比较所述数据计算模块计算得到的时间之和与当前时间的大小;
任务线程运行控制模块,用于根据所述数据比较模块比较的结果控制所述集群中任务线程的运行;其中,所述任务线程运行控制模块包括第一控制处理单元;所述第一控制处理单元,用于当所述比较的结果为所述时间之和小于所述当前时间时,重启所述集群中所述时间之和所对应的任务线程的任务副本。
9.根据权利要求8所述的装置,其特征在于,所述任务线程运行控制模块还包括:
第二控制处理单元,用于当所述比较的结果为所述时间之和大于等于所述当前时间时,执行以第二预设时间为周期获取所述数据库中任务线程的当前心跳时间信息的操作来完成所述集群中任务线程的运行。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
第一关联通道建立模块,用于在重启所述集群中所述时间之和所对应的任务线程的任务副本之后,建立所述任务线程与所述数据库之间的心跳时间关联通道。
11.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第二关联通道建立模块,用于启动所述集群中的任务线程,并分别建立所述集群中的任务线程与所述数据库之间的心跳时间关联通道。
12.一种集群中任务线程运行的监控装置,其特征在于,应用于任务服务器,所述装置包括:
检查模块,用于在监听服务器启动任务线程时,检查所述任务线程是否与数据库之间建立了心跳时间关联通道;
心跳时间信息更新模块,用于当所述检查模块的检查结果为是时,基于心跳时间关联通道以第一预设时间为周期在数据库中更新存储任务线程的当前心跳时间信息。
13.根据权利要求12所述的装置,其特征在于,所述装置还包括:
任务运行停止模块,用于当所述检查模块的检查结果为否时,停止所述任务线程当前任务的运行。
14.一种集群中任务线程运行的监控***,其特征在于,所述***包括:
监听服务器,用于以第二预设时间为周期获取数据库中任务线程的当前心跳时间信息;以及用于计算所述任务线程的当前心跳时间信息与任务服务器在数据库中更新存储所述任务线程的当前心跳时间信息对应周期的第一预设时间的时间之和,比较所述时间之和与当前时间的大小;以及用于根据所述比较的结果控制所述集群中任务线程的运行;其中,所述根据所述比较的结果控制所述集群中任务线程的运行,包括:当所述比较的结果为所述时间之和小于所述当前时间时,重启所述集群中所述时间之和所对应的任务线程的任务副本;
任务服务器,用于在监听服务器启动任务线程时,检查所述任务线程是否与所述数据库之间建立了心跳时间关联通道;以及用于当所述检查的结果为是时,基于心跳时间关联通道以第一预设时间为周期在数据库中更新存储任务线程的当前心跳时间信息;
数据库,用于存储集群中任务线程的当前心跳时间信息。
CN201610004928.6A 2016-01-05 2016-01-05 一种集群中任务线程运行的监控方法、装置及*** Active CN106940671B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610004928.6A CN106940671B (zh) 2016-01-05 2016-01-05 一种集群中任务线程运行的监控方法、装置及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610004928.6A CN106940671B (zh) 2016-01-05 2016-01-05 一种集群中任务线程运行的监控方法、装置及***

Publications (2)

Publication Number Publication Date
CN106940671A CN106940671A (zh) 2017-07-11
CN106940671B true CN106940671B (zh) 2020-08-04

Family

ID=59469754

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610004928.6A Active CN106940671B (zh) 2016-01-05 2016-01-05 一种集群中任务线程运行的监控方法、装置及***

Country Status (1)

Country Link
CN (1) CN106940671B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109391495A (zh) * 2017-08-10 2019-02-26 阿里巴巴集团控股有限公司 发送及接收心跳消息的方法、装置、计算机可读介质及电子设备
CN109992436A (zh) * 2017-12-29 2019-07-09 华为技术有限公司 线程阻塞检测方法及设备
CN109213684B (zh) * 2018-09-18 2022-01-28 北京工业大学 基于OpenMP线程心跳检测技术的程序检测方法及应用
CN113438122B (zh) * 2021-05-14 2022-05-17 济南浪潮数据技术有限公司 一种服务器的心跳管理方法、装置、计算机设备及介质
CN113434291A (zh) * 2021-06-25 2021-09-24 湖北央中巨石信息技术有限公司 一种具有用于基于通道的实时调度优化方法
CN114328083B (zh) * 2021-11-30 2023-11-14 苏州浪潮智能科技有限公司 一种wdt监控方法、装置及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102880475A (zh) * 2012-10-23 2013-01-16 上海普元信息技术股份有限公司 计算机软件***中基于云计算的实时事件处理***及方法
CN104915256A (zh) * 2015-06-05 2015-09-16 惠州Tcl移动通信有限公司 一种任务的实时调度实现方法及其***

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7451359B1 (en) * 2002-11-27 2008-11-11 Oracle International Corp. Heartbeat mechanism for cluster systems
CN101854373B (zh) * 2009-04-01 2013-10-09 华为技术有限公司 任务切换方法、服务器节点及集群***
RU2543316C2 (ru) * 2012-12-25 2015-02-27 Закрытое акционерное общество "Лаборатория Касперского" Система и способ отказоустойчивого выполнения задач по расписанию в распределенных средах
US9928287B2 (en) * 2013-02-24 2018-03-27 Technion Research & Development Foundation Limited Processing query to graph database
CN104866380B (zh) * 2015-06-18 2018-07-06 北京搜狐新媒体信息技术有限公司 一种集群管理***的状态转换的处理方法和装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102880475A (zh) * 2012-10-23 2013-01-16 上海普元信息技术股份有限公司 计算机软件***中基于云计算的实时事件处理***及方法
CN104915256A (zh) * 2015-06-05 2015-09-16 惠州Tcl移动通信有限公司 一种任务的实时调度实现方法及其***

Also Published As

Publication number Publication date
CN106940671A (zh) 2017-07-11

Similar Documents

Publication Publication Date Title
CN106940671B (zh) 一种集群中任务线程运行的监控方法、装置及***
CN106940699B (zh) 一种内存数据的同步处理方法、装置、服务器及***
US9342426B2 (en) Distributed system, server computer, distributed management server, and failure prevention method
CN107480014B (zh) 一种高可用设备切换方法及装置
US10924538B2 (en) Systems and methods of monitoring software application processes
CN108304553B (zh) 数据迁移方法、装置、计算机设备和存储介质
CN105468717B (zh) 数据库操作方法和装置
CN106648994B (zh) 一种备份操作日志的方法,设备和***
CN111355610A (zh) 一种基于边缘网络的异常处理方法及装置
WO2016188100A1 (zh) 信息***故障场景信息收集方法及***
CN105069152B (zh) 数据处理方法及装置
CN111209110B (zh) 一种实现负载均衡的任务调度管理方法、***和存储介质
CN106960060B (zh) 一种数据库集群的管理方法及装置
CN109361542A (zh) 客户端的故障处理方法、装置、***、终端和服务器
CN113312153B (zh) 一种集群部署方法、装置、电子设备及存储介质
CN115562911B (zh) 虚拟机数据备份方法及装置、***、电子设备、存储介质
CN111538585A (zh) 一种基于node.js的服务器进程调度方法、***和装置
CN113703946A (zh) 应用恢复方法及其装置、电子设备、计算机可读存储介质
US10157110B2 (en) Distributed system, server computer, distributed management server, and failure prevention method
CN112631756A (zh) 一种应用于航天测控软件的分布式调控方法及装置
CN113778763B (zh) 一种三方接口服务故障智能切换方法及***
CN115454872A (zh) 数据库测试方法、装置、设备以及存储介质
CN113821232B (zh) 模型更新方法和装置
CN112612604B (zh) 基于Actor模型的任务调度方法、装置
CN114756527A (zh) Redis集群的扩容方法、装置、电子设备和存储介质

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
TR01 Transfer of patent right

Effective date of registration: 20201013

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20201013

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Advanced innovation technology Co.,Ltd.

Address before: Greater Cayman, British Cayman Islands

Patentee before: Alibaba Group Holding Ltd.

TR01 Transfer of patent right