一种集群中任务线程运行的监控方法、装置及***
技术领域
本申请涉及互联网通信技术领域,特别涉及一种集群中任务线程运行的监控方法、装置及***。
背景技术
随着互联网通信技术的日新月异,一些大型的互联网***,由于业务复杂等原因,会出现大集群环境下多任务线程运行的场景。一般任务线程运行后,都需要一段较长时间来进行业务处理,监听服务器需要保证在该时间内各任务线程稳定的运行。
现有技术中为保证大集群环境下各任务线程稳定运行采取的监控方法主要包括两种:一种是收集报告模式,另一种是主动回查模式。在收集报告模式中需要将每一个任务线程的状态报告给监听服务器,当监听服务器在收集到某个任务线程的任务失败状态报告时将重启所述任务线程的任务副本来保证任务线程稳定的运行。在主动回查模式中每个任务线程都需要在监听服务器上进行注册,这样监听服务器可以按照一定周期进行逐个任务线程查询,通过回查模式获取任务线程的任务状态,根据查询任务状态来确定是否重启任务线程的任务副本来保证任务线程稳定的运行。但现有技术的所述收集报告模式的监控方法中会由于网络问题或者机器宕机的情况导致任务状态不能顺利报告给监听服务器,监听服务器只能根据一段时间没有收到任务状态报告的规则来重启任务线程的任务副本;所述主动回查模式的监控方法中也受限于机器、网络的因素无法准确的获取任务状态,所以也只能根据预设数量次的回查次数内未查到任务状态的条件来重启任务线程的副本。
因此,现有的上述两种监控方法中均无法准确获取任务状态,会出现任务没有消亡却盲目的重启任务线程的任务副本的情况,造成因所述任务线程重复启动的长时间并发报错,导致较大的监控开发成本和***风险。
发明内容
本申请实施例的目的是提供一种集群中任务线程运行的监控方法、装置及***,可以保证大集群环境下各任务线程稳定运行,提高***稳定性,降低***风险。
为解决上述技术问题,本申请实施例提供一种集群中任务线程运行的监控方法、装置及***是这样实现的:
一种集群中任务线程运行的监控方法,所述方法包括:
集群中的任务服务器基于心跳时间关联通道以第一预设时间为周期在数据库中更新存储任务线程的当前心跳时间信息;
所述集群中的监听服务器以第二预设时间为周期获取所述数据库中任务线程的当前心跳时间信息;
所述监听服务器计算所述任务线程的当前心跳时间信息与所述第一预设时间的时间之和,比较所述时间之和与当前时间的大小;
所述监听服务器根据所述比较的结果控制所述集群中任务线程的运行。
一种集群中任务线程运行的监控方法,所述方法包括:
以第二预设时间为周期获取所述数据库中任务线程的当前心跳时间信息;
计算所述任务线程的当前心跳时间信息与任务服务器在数据库中更新存储所述任务线程的当前心跳时间信息对应周期的第一预设时间的时间之和,比较所述时间之和与当前时间的大小;
根据所述比较的结果控制所述集群中任务线程的运行。
一种集群中任务线程运行的监控方法,所述方法包括:
在监听服务器启动任务线程时,检查所述任务线程是否与所述数据库之间建立了心跳时间关联通道;
当所述检查的结果为是时,基于心跳时间关联通道以第一预设时间为周期在数据库中更新存储任务线程的当前心跳时间信息。
一种集群中任务线程运行的监控装置,所述装置包括:
心跳时间信息获取模块,用于以第二预设时间为周期获取所述数据库中任务线程的当前心跳时间信息;
数据计算模块,用于计算所述任务线程的当前心跳时间信息与任务服务器在数据库中更新存储所述任务线程的当前心跳时间信息对应周期的第一预设时间的时间之和;
数据比较模块,用于比较所述数据计算模块计算得到的时间之和与当前时间的大小;
任务线程运行控制模块,用于根据所述数据比较模块比较的结果控制所述集群中任务线程的运行。
一种集群中任务线程运行的监控装置,所述装置包括:
检查模块,用于在监听服务器启动任务线程时,检查所述任务线程是否与所述数据库之间建立了心跳时间关联通道;
心跳时间信息更新模块,用于当所述检查模块的检查结果为是时,基于心跳时间关联通道以第一预设时间为周期在数据库中更新存储任务线程的当前心跳时间信息。
一种集群中任务线程运行的监控***,所述***包括:
监听服务器,用于以第二预设时间为周期获取所述数据库中任务线程的当前心跳时间信息;以及用于计算所述任务线程的当前心跳时间信息与任务服务器在数据库中更新存储所述任务线程的当前心跳时间信息对应周期的第一预设时间的时间之和,比较所述时间之和与当前时间的大小;以及用于根据所述比较的结果控制所述集群中任务线程的运行;
任务服务器,用于在监听服务器启动任务线程时,检查所述任务线程是否与所述数据库之间建立了心跳时间关联通道;以及用于当所述检查的结果为是时,基于心跳时间关联通道以第一预设时间为周期在数据库中更新存储任务线程的当前心跳时间信息;
数据库,用于存储集群中任务线程的当前心跳时间信息。
本申请实施例中任务服务器基于心跳时间关联通道将任务线程的当前心跳时间信息以第一预设时间为周期在数据库中更新存储,监听服务器从所述数据库中获取任务线程的当前心跳时间信息之后,计算出当前心跳时间信息与所述第一预设时间的时间之和,并通过比较所述时间之和与当前时间的大小的方式判断当前任务线程是否正常运行。最后,根据比较的结果可以有效的控制所述集群中任务线程的运行。与现有技术相比,利用本申请实施例可以无需直接依赖任务线程的任务状态,直接判断出任务线程是否正常运行,有效提高***稳定性,降低***风险。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图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、小型计算机、大型计算机、包括以上任何***或设备的分布式计算环境等等。
虽然通过实施例描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的精神。