掌桥专利:专业的专利平台
掌桥专利
首页

一种任务监控方法、系统、装置及计算机可读存储介质

文献发布时间:2023-06-19 19:14:59


一种任务监控方法、系统、装置及计算机可读存储介质

技术领域

本发明涉及计算机应用技术领域,特别是涉及一种任务监控方法、系统、装置及计算机可读存储介质。

背景技术

存储控制器主要用于对存储端的硬盘及硬盘上存储的数据进行管理,服务器端通过存储控制器可对存储端上存储的数据进行访问。在存储控制器向服务器端提供数据访问服务时会经历存储卷、存储池、raid以及存储盘等多个不同的阶段,进行数据访问服务的每个阶段均有可能遇到各类异常场景例如磁盘损坏以及系统掉电等,在处理这些异常场景时需要先暂停对新的任务的响应,然后将已接收的业务处理完毕,在此期间需要对现有的活动任务的数量进行监控以便及时进行后续异常场景的处理操作,但是由于目前通常利用多线程处理任务也即活动任务分散在不同的线程上并行处理,导致对活动任务的数量进行监控的难度比较大,效率比较低。

发明内容

本发明的目的是提供一种任务监控方法、系统、装置及计算机可读存储介质,能够提高任务监控的效率,并且具有较强的通用性和扩展性。

为解决上述技术问题,本发明提供了一种任务监控方法,包括:

确定在当前数据访问服务阶段启用的线程的总数;

对于每个所述线程均基于与所述线程对应的统计变量确定所述线程上已接收的活动任务是否处理完毕,其中,所述线程与所述统计变量一一对应且所述统计变量的数值等于所述线程上未处理完成的活动任务的数量;

在确定所述线程上的活动任务处理完毕时将所述启用的线程的总数减一;

在启用的线程的总数为零时确定将所述当前数据访问服务阶段中已接收的所述活动任务均处理完毕。

优选的,所述统计变量的初始值为1,基于与所述线程对应的统计变量确定所述线程上已接收的活动任务是否处理完毕,包括:

将所述统计变量减一;

在所述统计变量为零时确定与所述统计变量对应的线程上已接收的活动任务处理完毕;

在所述统计变量不为零时确定与所述统计变量对应的线程上已接收的活动任务未处理完毕。

优选的,在所述统计变量不为零时确定与所述统计变量对应的线程上已接收的活动任务未处理完毕之后,还包括:

在所述线程每完成一个已接收的活动任务时将所述统计变量减一,并进入将所述统计变量减一的步骤。

优选的,在所述统计变量为零时确定与所述统计变量对应的线程上已接收的活动任务处理完毕之后,还包括:

将所述统计变量重新赋值为所述初始值。

优选的,在在所述线程每完成一个已接收的活动任务时将所述统计变量减一之后,还包括:

将减一后的统计变量输出至显示装置,以便用户对当前各个所述线程对所述活动任务的处理情况进行分析。

优选的,对于每个所述线程均基于与所述线程对应的统计变量确定所述线程上已接收的活动任务是否处理完毕包括:

按照预设处理顺序依次基于与各个所述线程对应的统计变量确定各个所述线程上已接收的活动任务是否处理完毕。

优选的,对于每个所述线程均基于与所述线程对应的统计变量确定所述线程上已接收的活动任务是否处理完毕包括:

按照各个所述统计变量发生改变的时间顺序依次基于与各个所述线程对应的统计变量确定各个所述线程上已接收的活动任务是否处理完毕。

优选的,在确定所述线程上的活动任务处理完毕时将启用的线程的总数减一,包括:

对启用的线程的总数设置加锁保护,以便在多个所述线程上的活动任务均处理完毕时将当前数据访问服务阶段启用的线程的总数依次减一。

优选的,在确定在当前数据访问服务阶段启用的线程的总数之前,还包括:

判断是否接收到静默处理信号;

在接收到所述静默处理信号时,进入确定在当前数据访问服务阶段启用的线程的总数的步骤。

优选的,在接收到所述静默处理信号之后,还包括:

向当前数据访问服务阶段的上游数据访问服务和下游数据访问服务均发送拒收信号,以便各个所述线程停止接收新的活动任务。

优选的,在确定所述线程上的活动任务处理完毕时将启用的线程的总数减一之后,还包括:

将减一之后的线程的总数发送至显示装置,以便用户对当前数据访问服务阶段的活动任务处理情况进行分析。

优选的,在确定将所述当前数据访问服务阶段中已接收的所述活动任务均处理完毕之后,还包括:

在接收到异常业务处理信号时对接收到的异常业务进行处理。

优选的,在接收到异常业务处理信号时对接收到的异常业务进行处理之后,还包括:

在确定所述异常业务处理完毕之后,向当前数据访问服务阶段的上游数据访问服务和下游数据访问服务发送恢复信号,以便各个所述线程重新开始接收新的活动任务。

优选的,在接收到异常业务处理信号时对接收到的异常业务进行处理之后,还包括:

对于各个所述线程均基于与所述线程对应的异常业务统计变量确定所述线程接收的异常业务是否处理完毕,其中,所述异常业务统计变量与所述线程一一对应且所述异常业务统计变量的数值等于所述线程上未处理完成的异常业务的数量。

优选的,所述异常业务统计变量的初始值为1,基于与所述线程对应的异常业务统计变量确定所述线程接收的异常业务是否处理完毕,包括:

将所述异常业务统计变量减一;

在所述异常业务统计变量为零时确定与所述异常业务统计变量对应的线程上已接收的异常业务处理完毕。

优选的,在将所述异常业务统计变量减一之后,还包括:

在所述异常业务统计变量不为零时,当所述线程每完成一个已接收的异常业务统计变量时将所述异常业务统计变量减一,并进入将所述异常业务统计变量减一的步骤。

优选的,在所述异常业务统计变量为零时确定与所述异常业务统计变量对应的线程上已接收的异常业务处理完毕之后,还包括:

将所述异常业务统计变量重新赋值为所述初始值。

为解决上述技术问题本申请还提供了一种任务监控系统,包括:

启用线程总数确定单元,用于确定在当前数据访问服务阶段启用的线程的总数;

线程监测单元,用于对于每个所述线程均基于与所述线程对应的统计变量确定所述线程上已接收的活动任务是否处理完毕,其中,所述线程与所述统计变量一一对应且所述统计变量的数值等于所述线程上未处理完成的活动任务的数量;

启用线程总数调整单元,用于在确定所述线程上的活动任务处理完毕时将启用的线程的总数减一;

任务监控结束单元,用于在启用的线程的总数为零时确定将所述当前数据访问服务阶段中已接收的所述活动任务均处理完毕。

优选的,所述统计变量的初始值为1,所述线程监测单元包括:

第一调整单元,用于将所述统计变量减一;

第一完毕判定单元,用于在所述统计变量为零时确定与所述统计变量对应的线程上已接收的活动任务处理完毕;

第一未完毕判定单元,用于在所述统计变量不为零时确定与所述统计变量对应的线程上已接收的活动任务未处理完毕。

优选的,还包括:

第二调整单元,用于在所述统计变量不为零时确定与所述统计变量对应的线程上已接收的活动任务未处理完毕之后,在所述线程每完成一个已接收的活动任务时将所述统计变量减一,并触发所述第一调整单元。

优选的,还包括:

赋值单元,用于在所述统计变量为零时确定与所述统计变量对应的线程上已接收的活动任务处理完毕之后,将所述统计变量重新赋值为所述初始值。

优选的,线程监测单元具体用于按照预设处理顺序依次基于与各个所述线程对应的统计变量确定各个所述线程上已接收的活动任务是否处理完毕。

优选的,线程监测单元具体用于按照各个所述统计变量发生改变的时间顺序依次基于与各个所述线程对应的统计变量确定各个所述线程上已接收的活动任务是否处理完毕。

优选的,启用线程总数调整单元具体用于对启用的线程的总数设置加锁保护,以便在多个所述线程上的活动任务均处理完毕时将当前数据访问服务阶段启用的线程的总数依次减一。

优选的,还包括:

静默处理判断单元,用于在确定在当前数据访问服务阶段启用的线程的总数之前判断是否接收到静默处理信号,若是,则触发所述启用线程总数确定单元。

优选的,还包括:

业务拒收单元,用于在接收到所述静默处理信号之后,向当前数据访问服务阶段的上游数据访问服务和下游数据访问服务均发送拒收信号,以便各个所述线程停止接收新的活动任务。

优选的,还包括:

第一提示单元,用于在确定所述线程上的活动任务处理完毕时将启用的线程的总数减一之后,将减一之后的线程的总数发送至显示装置,以便用户对当前数据访问服务阶段的活动任务处理情况进行分析。

作为一种优选的实施例,还包括:

异常业务处理单元,用于在确定将所述当前数据访问服务阶段中已接收的所述活动任务均处理完毕之后,在接收到异常业务处理信号时对接收到的异常业务进行处理。

作为一种优选的实施例,还包括:

业务恢复单元,用于在接收到异常业务处理信号时对接收到的异常业务进行处理之后并确定所述异常业务处理完毕之后,向当前数据访问服务阶段的上游数据访问服务和下游数据访问服务发送恢复信号,以便各个所述线程重新开始接收新的活动任务。

作为一种优选的实施例,还包括:

异常业务处理监控单元,用于在接收到异常业务处理信号时对接收到的异常业务进行处理之后,对于各个线程均基于与线程对应的异常业务统计变量确定线程接收的异常业务是否处理完毕,其中,异常业务统计变量与线程一一对应且异常业务统计变量的数值等于线程上未处理完成的异常业务的数量。

优选的,所述异常业务统计变量的初始值为1,基于与线程对应的异常业务统计变量确定线程接收的异常业务是否处理完毕,包括:

将所述异常业务统计变量减一;

在所述异常业务统计变量为零时确定与所述异常业务统计变量对应的线程上已接收的异常业务处理完毕。

优选的,在将所述异常业务统计变量减一之后,还包括:

在所述异常业务统计变量不为零时,当所述线程每完成一个已接收的异常业务统计变量时将所述异常业务统计变量减一,并进入将所述异常业务统计变量减一的步骤。

优选的,在所述异常业务统计变量为零时确定与所述异常业务统计变量对应的线程上已接收的异常业务处理完毕之后,还包括:

将所述异常业务统计变量重新赋值为所述初始值。

为解决上述技术问题本申请还提供了一种任务监控装置,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上述任务监控方法的步骤。

为解决上述技术问题本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任务监控方法的步骤。

综上,本申请提供了一种任务监控方法、系统、装置及计算机可读存储介质,包括确定在当前数据访问服务阶段启用的线程的总数,并且对于每个线程均一一对应地设置有统计变量,统计变量的数值等于线程上未处理完成的活动任务的数量,因此能够根据统计变量确定线程已接收的活动任务是否处理完毕,并且每个线程均对应一个统计变量能够避免并发抢占,提高统计效率。当线程上的活动任务处理完毕时将启用的线程的总数减一,最终在启用的线程的总数为零时确定将当前数据访问服务阶段中已接收的活动任务全部处理完毕,具有较强的通用性和扩展性。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明提供的一种任务监控方法的第一流程图;

图2为本发明提供的一种任务监控方法的第二流程图;

图3为本发明提供的一种任务监控方法的第三流程图;

图4为本发明提供的一种任务监控系统的结构示意图;

图5为本发明提供的一种任务监控装置的结构示意图;

图6为本发明提供的一种计算机可读存储介质的结构示意图。

具体实施方式

本发明的核心是提供一种任务监控方法、系统、装置及计算机可读存储介质,能够提高任务监控的效率,并且具有较强的通用性和扩展性。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

存储控制器主要用于对存储端的硬盘及硬盘上存储的数据进行管理,服务器端通过存储控制器可对存储端上存储的数据进行访问。在存储控制器向服务器端提供数据访问服务时会经历存储卷、存储池、raid以及存储盘等多个不同的阶段,进行数据访问服务的每个阶段均有可能遇到各类异常场景例如磁盘损坏以及系统掉电等,在处理这些异常场景时需要先暂停对新的任务的响应,然后将已接收的业务处理完毕,在此期间需要对现有的活动任务的数量进行监控以便及时进行后续异常场景的处理操作,但是由于目前通常利用多线程处理任务也即活动任务分散在不同的线程上并行处理,导致对活动任务的数量进行监控的难度比较大,效率比较低。

考虑到接收的活动任务分布在不同线程上并行处理,因此现有技术中通常预先设置一个变量,该变量的数值为在当前数据访问服务阶段已接收的活动任务的总数,并且该变量的取值能够随着活动任务是否处理完毕的情况而增减,因此能够基于该变量的实际值判断当前数据访问服务阶段已接收的活动任务是否全部处理完毕,但是上述方式存在并发抢占的缺陷,需要为变量设置加锁保护,不利于提高任务监控的效率。

请参照图1,图1为本发明提供的一种任务监控方法的第一流程图,该任务监控方法包括:

S1:确定在当前数据访问服务阶段启用的线程的总数;

S2:对于每个线程均基于与线程对应的统计变量确定线程上已接收的活动任务是否处理完毕,其中,线程与统计变量一一对应且统计变量的数值等于线程上未处理完成的活动任务的数量;

S3:在确定线程上的活动任务处理完毕时将启用的线程的总数减一;

S4:在启用的线程的总数为零时确定将当前数据访问服务阶段中已接收的活动任务均处理完毕。

为解决现有技术中任务监控的效率不高的问题,在本申请中为当前数据访问服务阶段启用的线程均一一对应设置有统计变量,因此即使在提供数据访问服务时同时启用多个线程对已接收的活动任务进行处理也不会出现统计变量并发抢占的问题,例如,当存在多个线程当前的活动任务的数量发生改变时不需要排队对统计变量进行修改,因此提高了对活动任务的数量进行监控的效率,进一步地,在进行数据访问服务遇到异常场景需要进行静默处理时应用本申请中的任务监控方法能够提高处理异常业务的速度,从而更快的恢复对正常的活动任务的处理,保证存储控制器能够正常工作,为服务端和存储端之间的数据访问服务提供保障。

并且,本申请中的统计变量的数值等于与其对应的线程上未处理完成的活动任务的数量,例如当线程新接收一个活动任务时统计变量的值会加一,当线程处理完毕一个活动任务时统计变量的值会减一,因此能够直接根据统计变量的值确定线程已接收的活动任务的处理情况。

本申请在开始任务监控时还确定当前数据访问服务阶段启用的线程的总数,因此当基于各个线程对应的统计变量确定各个线程对于已接收的活动任务的处理情况之后能够相适应的对当前数据访问服务阶段启用的线程的总数进行动态修改,具体的,当基于线程对应的统计变量确定该线程已经将已接收的活动任务处理完毕时将当前数据访问服务阶段启用的线程的总数减一,当基于线程对应的统计变量确定该线程暂时还未将已接收的活动任务处理完毕时不改变当前数据访问服务阶段启用的线程的总数。最终通过判断当前数据访问服务阶段启用的线程的总数确定当前数据访问服务阶段已接收的所有活动任务是否均处理完毕,在启用的线程的总数不为零时确定当前数据访问服务阶段还存在未处理完毕的活动任务,继续控制各个线程对活动任务进行处理。

在实际应用中,存储控制器中向存储端和服务端提供数据访问服务时会经历多个数据访问服务阶段(例如存储卷、存储池、raid以及存储盘等)无可避免的会遇到各类异常场景(例如后端坏盘、系统掉电以及控制节点异常脱离集群等),在处理这些异常场景时需要先暂停对新的任务的响应也即进行静默处理,然后将已经接收的活动任务处理完毕之后再发起异常场景处理流程也即对异常业务进行处理,可见在此过程中需要对当前数据访问服务阶段已经接收的活动任务的处理情况以及对异常业务的处理情况进行监控,本申请提供的任务监控方法能够适用于上述场景,具有较强的通用性和扩展性。

综上,本申请提供了一种任务监控方法,包括确定在当前数据访问服务阶段启用的线程的总数,并且对于每个线程均一一对应地设置有统计变量,统计变量的数值等于线程上未处理完成的活动任务的数量,因此能够根据统计变量确定线程已接收的活动任务是否处理完毕,并且每个线程均对应一个统计变量能够避免并发抢占,提高统计效率。当线程上的活动任务处理完毕时将启用的线程的总数减一,最终在启用的线程的总数为零时确定将当前数据访问服务阶段中已接收的活动任务均处理完毕,具有较强的通用性和扩展性。

在上述实施例的基础上:

作为一种优选的实施例,统计变量的初始值为1,基于与线程对应的统计变量确定线程上已接收的活动任务是否处理完毕,包括:

将统计变量减一;

在统计变量为零时确定与统计变量对应的线程上已接收的活动任务处理完毕;

在统计变量不为零时确定与统计变量对应的线程上已接收的活动任务未处理完毕。

通常情况下在有新的活动任务到来时,该活动任务所在的线程对应的统计变量加一,当该活动任务处理完毕时将该统计变量减一,由于每个线程均设置有一一对应的统计变量因此无需考虑并发抢占的问题,不需要对统计变量加锁,提高了对各个线程上的活动任务的数量的监控效率。

特别的,在本实施例中将统计变量的初始值设置为1,这样设置的原因有两点:其一,若执行当前数据访问服务阶段的处理器未进入静默处理的阶段则线程对应的统计变量的值不可能小于1(未开启静默处理流程时线程接收一个新的任务则统计变量加一,处理完毕一个任务则减一,加减操作一一对应,只有当开启静默流程时由于不接收新的任务才会出现统计变量小于1的情况),因此可通过判断统计变量是否为0来判断是否开启了静默流程,若开启了静默流程则需要进行后续相应操作;其二,一般的计数变量均为无符号类型,由于对其进行减一操作需要两个流程,无法通过正负值判断,增加了任务监控的难度。综合考虑上述两点原因,本实施例将统计变量的初始值设置为1能够进一步基于统计变量的值确定是否需要进行静默处理流程的后续步骤,并且能够提高任务监控的效率。

由于将统计变量的初始值设置为1,因此在基于统计变量判断线程上的活动任务是否处理完毕时先将当前的统计变量减一,若统计变量减一后的值为零则证明与统计变量对应的线程上的活动任务已经处理完,之后在确定该线程上的活动任务处理完毕之后将启用的线程的总数减一;若统计变量减一后的值不为零则证明与统计变量对应的线程上还存在未处理完毕的活动任务,则继续等到线程对活动任务进行处理。

作为一种优选的实施例,在统计变量不为零时确定与统计变量对应的线程上已接收的活动任务未处理完毕之后,还包括:

在线程每完成一个已接收的活动任务时将统计变量减一,并进入将统计变量减一的步骤。

在基于统计变量判定与统计变量对应的线程未将已接收的活动任务处理完毕时,继续根据线程对活动任务的处理情况对统计变量的取值进行更新,具体的,在线程每完成一个已接收的活动任务时将统计变量同步减一,并且再次进入将统计变量减一的步骤,从而通过判断统计变量当前取值是否为零来判断线程是否将已接收的活动任务处理完毕。

作为一种优选的实施例,在统计变量为零时确定与统计变量对应的线程上已接收的活动任务处理完毕之后,还包括:

将统计变量重新赋值为初始值。

当统计变量为零时确定与统计变量对应的线程上已接收的活动任务处理完毕,为了保证下一次对各个线程进行任务监控能够正常进行,在本实施例中将统计变量重新赋值为初始值,优选的,可以将统计变量重新赋值为1,一方面便于基于统计变量的取值确定处理器在当前数据访问服务解读那是否开启静默流程,另一方面将统计变量赋值为1能够简化计算过程,提高对各个活动任务进行监控的效率。

作为一种优选的实施例,在线程每完成一个已接收的活动任务时将统计变量减一之后,还可以将减一后的统计变量输出至显示装置,以便用户对当前各个线程对活动任务的处理情况进行分析。

作为一种优选的实施例,对于每个线程均基于与线程对应的统计变量确定线程上已接收的活动任务是否处理完毕包括:

按照预设处理顺序依次基于与各个线程对应的统计变量确定各个线程上已接收的活动任务是否处理完毕。

考虑到对活动任务进行处理时多是采用多线程并行处理的方式,为保证任务监控的准确性和可靠性,需要按照一定的规则对各个线程是否将已接收的活动任务处理完毕的情况进行判断。在本实施例中具体采用按照预设处理顺序依次基于与各个线程对应的统计变量确定各个线程上已接收的活动任务是否处理完毕的方式,预设处理顺序为在对当前数据访问服务阶段进行任务监控之前就已经设置好的,对于预设处理顺序的具体设置规则本申请不作特别限定,可根据实际情况进行设置。

例如,先判断预设处理顺序中的第一个线程对应的统计变量是否为零,若否则线程继续对活动任务进行处理,然后判断预设处理顺序中的第二个线程对应的统计变量是否为零,以此类推直至预设处理顺序中的最后一个线程判断完毕后再次从第一个线程开始。

综上,本实施例中按照预设处理顺序依次对各个线程是否将已接收的活动任务处理完毕进行判断,能够保证任务监控的可靠性和稳定性。

作为一种优选的实施例,对于每个线程均基于与线程对应的统计变量确定线程上已接收的活动任务是否处理完毕包括:

按照各个统计变量发生改变的时间顺序依次基于与各个线程对应的统计变量确定各个线程上已接收的活动任务是否处理完毕。

考虑到活动任务进行处理时多是采用多线程并行处理的方式,为保证任务监控的准确性和可靠性,需要按照一定的规则对各个线程是否将已接收的活动任务处理完毕的情况进行判断。各个线程对应的统计变量是动态变化的,本实施例按照统计变量发生变化的先后顺序对与统计变量对应的线程是否将已接收的所有活动任务处理完毕进行判断,使得各个线程对活动任务的处理情况的监控更加灵活,同时还能保证任务监控的准确性和可靠性。

作为一种优选的实施例,在确定线程上的活动任务处理完毕时将启用的线程的总数减一,包括:

对启用的线程的总数设置加锁保护,以便在多个线程上的活动任务均处理完毕时将当前数据访问服务阶段启用的线程的总数依次减一。

考虑到对活动任务进行处理时多是采用多线程并行处理的方式,因此可能会出现多个线程对应的统计变量同时为零进而同时对当前数据访问服务阶段启用的线程的总数进行修改的情况,为此本申请中当前数据访问服务阶段启用的线程的总数额外设置加锁保护,也即当多个线程对应的统计变量同时为零进而需要同时对启用的线程的总数进行修改时需要按照一定的顺序依次对启用的线程的总数进行减一的操作,从而避免因并发抢占导致的启用的线程的总数出错等问题,保证对中的任务监控的准确性和可靠性。

请参照图2,图2为本发明提供的一种任务监控方法的第二流程图,图2中active_count为启用的线程的总数,active_count的初始值为num_thread,num_thread为任务监控方法开始时当前数据访问服务阶段启用的线程的总数,active_process为各个线程对应的统计变量。首先在任务监控方法开始时将active_count的初始设置为num_thread,然后分别基于各个线程对应的active_process确定线程是否将活动任务处理完毕,并且对active_count进行加锁保护,判断active_count是否为0,active_count为0时确定结束任务监控。

请参照图3,图3为本发明提供的一种任务监控方法的第三流程图,图3以raid模块进行数据访问服务的阶段为例,当raid模块接收到新的活动任务时将active_process加一,当raid模块处理完一个活动任务时将active_process减一,然后判断active_process是否为0,在active_process为0时确定线程将活动任务处理完毕,并且对active_count进行加锁保护,判断active_count是否为0,active_count为0时确定结束任务监控。

作为一种优选的实施例,在确定在当前数据访问服务阶段启用的线程的总数之前,还包括:

判断是否接收到静默处理信号;

在接收到静默处理信号时,进入确定在当前数据访问服务阶段启用的线程的总数的步骤。

在实际应用中当存储控制器进行各个数据访问服务阶段时若遇到异常场景则通常需要静默处理,在进行静默处理时需要先将当前数据访问服务阶段已经接收的活动任务全部处理完成,然后才能进行异常业务的处理,应用本申请的任务监控的方法实现静默处理过程中对于活动业务的监控能够提高任务监控的效率。当存储控制器没有遇到异常场景时则不需要进行静默处理,各个线程正常接收新的活动任务并对各个活动任务进行处理即可,也就不需要对活动业务的数量进行监控,因此在本实施例中只有在接收到静默处理信号时才进入确定在当前数据访问服务阶段启用的线程的总数的步骤。

作为一种优选的实施例,在接收到静默处理信号之后,还包括:

向当前数据访问服务阶段的上游数据访问服务和下游数据访问服务均发送拒收信号,以便各个线程停止接收新的活动任务。

考虑到当存储控制器进行数据访问服务时遇到异常场景需要先控制各个线程将已经接收的活动任务处理完毕,然后才能对异常业务进行处理,一方面为了加快对异常业务的处理,另一方面为了保证当前数据访问服务的上游数据访问服务发送的活动任务能够被正常处理,在本实施例中在接收到静默处理信号之后向当前数据访问服务阶段的上游数据访问服务和下游数据访问服务均发送拒收信号,上游数据访问服务可以将活动任务发送给其他没有遇到异常场景的处理器,保证系统的正常功能。具体的,在本实施中若接收到静默处理信号则证明遇到了异常场景,因此向当前数据访问服务阶段的上游数据访问服务和下游数据访问服务均发送拒收信号,上游数据访问服务也即向当前数据访问服务阶段发送信息的服务,下游数据访问服务也即接收当前数据访问服务发送的信息的服务,从而保证不会再接收新的活动任务,以便快速将已接收的活动任务处理完毕后开始对异常业务进行处理,保证存储控制器的正常工作流程。

此外,在确定线程上的活动任务处理完毕时将启用的线程的总数减一之后,还可以将减一之后的线程的总数发送至显示装置,以便用户对当前数据访问服务阶段的活动任务处理情况进行分析。

作为一种优选的实施例,在确定将当前数据访问服务阶段中已接收的活动任务均处理完毕之后,还包括:

在接收到异常业务处理信号时对接收到异常业务进行处理。

在本实施例中确定当前数据访问服务启用的线程的总数为零时结束任务监控,并且在接收到异常业务处理信号时证明此时确实遇到异常场景并已经启动静默处理流程,由于各个线程已经将已接收的活动任务处理完毕,因此可以开始处理解决异常场景的异常业务。异常场景包括后端坏盘、系统掉电以及控制节点异常脱离集群等多种情况,不同的异常场景对应的异常业务不同,本申请对此不作特别限定。

作为一种优选的实施例,在接收到异常业务处理信号时对接收到异常业务进行处理之后,还包括:

在确定异常业务处理完毕之后,向当前数据访问服务阶段的上游数据访问服务和下游数据访问服务发送恢复信号,以便各个线程重新开始接收新的活动任务。

在本实施例对遇到异常场景后进行静默处理流程进一步完善,在异常业务处理完成之后向当前数据访问服务阶段的上游数据访问服务和下游数据访问服务发送恢复信号,上游数据访问服务和下游数据访问服务在接收到恢复信号之后能够正常向当前数据访问服务传输消息以及发送活动任务等,也即恢复正常工作,保证存储控制器的正常工作,进而保证服务端和存储端能够通过存储控制器完成数据访问服务。

作为一种优选的实施例,在接收到异常业务处理信号时对接收到的异常业务进行处理之后,还包括:

对于各个线程均基于与线程对应的异常业务统计变量确定线程接收的异常业务是否处理完毕,其中,异常业务统计变量与线程一一对应且异常业务统计变量的数值等于线程上未处理完成的异常业务的数量。

在处理异常业务时也需要对异常业务的数量进行动态监控,以便在异常业务处理完毕之后恢复对正常的活动业务的处理,因此在本实施例中同样为接收异常业务的各个线程一一对应设置有异常业务统计变量,基于与线程对应的异常业务统计变量确定线程接受的异常业务是否处理完毕,从而同样能够加快对异常业务的监控效率。此外,本实施例对异常业务统计变量的初始值的具体取值不作特别限定,可根据实际情况进行设置,例如将异常业务统计变量的初始值同样设置为1,利用异常业务统计变量确定线程是否将异常业务处理完毕的过程与上述利用统计变量对活动任务进行监控的过程一致,本申请在此不做赘述。

请参照图4,图4为本发明提供的一种任务监控系统的结构示意图,该任务监控系统包括:

启用线程总数确定单元11,用于确定在当前数据访问服务阶段启用的线程的总数;

线程监测单元12,用于对于每个线程均基于与线程对应的统计变量确定线程上已接收的活动任务是否处理完毕,其中,线程与统计变量一一对应且统计变量的数值等于线程上未处理完成的活动任务的数量;

启用线程总数调整单元13,用于在确定线程上的活动任务处理完毕时将启用的线程的总数减一;

任务监控结束单元14,用于在启用的线程的总数为零时确定将当前数据访问服务阶段中已接收的活动任务均处理完毕。

本申请提供了一种任务监控系统,能够确定在当前数据访问服务阶段启用的线程的总数,并且对于每个线程均一一对应地设置有统计变量,统计变量的数值等于线程上未处理完成的活动任务的数量,因此能够根据统计变量确定线程已接收的活动任务是否处理完毕,并且每个线程均对应一个统计变量能够避免并发抢占,提高统计效率。当线程上的活动任务处理完毕时将启用的线程的总数减一,最终在启用的线程的总数为零时确定将当前数据访问服务阶段中已接收的活动任务均处理完毕,具有较强的通用性和扩展性。

对于本申请提供的任务监控系统的详细介绍请参照上述任务监控方法的实施例,本申请对此不作特别限定。

在上述实施例的基础上:

作为一种优选的实施例,统计变量的初始值为1,线程监测单元12包括:

第一调整单元,用于将统计变量减一;

第一完毕判定单元,用于在统计变量为零时确定与统计变量对应的线程上已接收的活动任务处理完毕;

第一未完毕判定单元,用于在统计变量不为零时确定与统计变量对应的线程上已接收的活动任务未处理完毕。

作为一种优选的实施例,还包括:

第二调整单元,用于在统计变量不为零时确定与统计变量对应的线程上已接收的活动任务未处理完毕之后,在线程每完成一个已接收的活动任务时将统计变量减一,并触发第一调整单元。

作为一种优选的实施例,还包括:

赋值单元,用于在统计变量为零时确定与统计变量对应的线程上已接收的活动任务处理完毕之后,将统计变量重新赋值为初始值。

作为一种优选的实施例,线程监测单元12具体用于按照预设处理顺序依次基于与各个线程对应的统计变量确定各个线程上已接收的活动任务是否处理完毕。

作为一种优选的实施例,线程监测单元12具体用于按照各个统计变量发生改变的时间顺序依次基于与各个线程对应的统计变量确定各个线程上已接收的活动任务是否处理完毕。

作为一种优选的实施例,启用线程总数调整单元13具体用于对启用的线程的总数设置加锁保护,以便在多个线程上的活动任务均处理完毕时将当前数据访问服务阶段启用的线程的总数依次减一。

作为一种优选的实施例,还包括:

静默处理判断单元,用于在确定在当前数据访问服务阶段启用的线程的总数之前判断是否接收到静默处理信号,若是,则触发启用线程总数确定单元11。

作为一种优选的实施例,还包括:

业务拒收单元,用于在接收到静默处理信号之后,向当前数据访问服务阶段的上游数据访问服务和下游数据访问服务均发送拒收信号,以便各个线程停止接收新的活动任务。

作为一种优选的实施例,还包括:

第一提示单元,用于在确定线程上的活动任务处理完毕时将启用的线程的总数减一之后,将减一之后的线程的总数发送至显示装置,以便用户对当前数据访问服务阶段的活动任务处理情况进行分析。

作为一种优选的实施例,还包括:

异常业务处理单元,用于在确定将当前数据访问服务阶段中已接收的活动任务均处理完毕之后,在接收到异常业务处理信号时对接收到的异常业务进行处理。

作为一种优选的实施例,还包括:

业务恢复单元,用于在接收到异常业务处理信号时对接收到的异常业务进行处理之后并确定异常业务处理完毕之后,向当前数据访问服务阶段的上游数据访问服务和下游数据访问服务发送恢复信号,以便各个线程重新开始接收新的活动任务。

作为一种优选的实施例,还包括:

异常业务处理监控单元,用于在接收到异常业务处理信号时对接收到的异常业务进行处理之后,对于各个线程均基于与线程对应的异常业务统计变量确定线程接收的异常业务是否处理完毕,其中,异常业务统计变量与线程一一对应且异常业务统计变量的数值等于线程上未处理完成的异常业务的数量。

作为一种优选的实施例,异常业务统计变量的初始值为1,基于与线程对应的异常业务统计变量确定线程接收的异常业务是否处理完毕,包括:

将异常业务统计变量减一;

在异常业务统计变量为零时确定与异常业务统计变量对应的线程上已接收的异常业务处理完毕。

作为一种优选的实施例,在将异常业务统计变量减一之后,还包括:

在异常业务统计变量不为零时,当线程每完成一个已接收的异常业务统计变量时将异常业务统计变量减一,并进入将异常业务统计变量减一的步骤。

作为一种优选的实施例,在异常业务统计变量为零时确定与异常业务统计变量对应的线程上已接收的异常业务处理完毕之后,还包括:

将异常业务统计变量重新赋值为初始值。

请参照图5,图5为本发明提供的一种任务监控装置的结构示意图,该装置包括:

存储器21,用于存储计算机程序;

处理器22,用于执行计算机程序时实现如上述任务监控方法的步骤。

其中,处理器22可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器22可以采用DSP (Digital Signal Processor,数字信号处理器)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA (Programmable LogicArray,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器22也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器;协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器22可以集成GPU(graphics processing unit,图形处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器22还可以包括AI (ArtificialIntelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。

存储器21可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器21还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器21至少用于存储以下计算机程序,其中,该计算机程序被处理器22加载并执行之后,能够实现前述任意一个实施例公开的任务监控方法的相关步骤。另外,存储器21所存储的资源还可以包括操作系统和数据等,存储方式可以是短暂存储或者永久存储。其中,操作系统可以包括Windows、Unix、Linux等。数据可以包括但不限于任务监控方法方法的数据等。

对于本申请提供的一种任务监控装置的详细介绍请参照上述的任务监控方法的实施例,本申请在此不做赘述。

请参照图6,图6为本发明提供的一种计算机可读存储介质的结构示意图,计算机可读存储介质31上存储有计算机程序,计算机程序被处理器执行时实现上述任务监控方法的步骤。

可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质31中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本申请各个实施例所述方法的全部或部分步骤。具体地,计算机可读存储介质31可以包括但不限于任何类型的盘,包括软盘、光盘及移动硬盘等,或适合于存储指令、数据的任何类型的媒介或设备等等,本申请在此不做特别的限定。

对于本发明提供的一种计算机可读存储介质31的介绍请参照上述任务监控方法的实施例,本发明在此不再赘述。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

相关技术
  • 一种任务切换方法、计算机装置及可读存储介质
  • 一种货架运输监控方法、装置和计算机可读存储介质
  • 一种监控方法及装置、计算机可读存储介质
  • 系统升级的监控方法、装置、设备及计算机可读存储介质
  • 一种任务分发方法、系统、设备及计算机可读存储介质
  • 任务监控方法、系统、电子设备及计算机可读存储介质
  • 一种制卡任务的分配方法、一种制卡任务的获取方法、计算机装置及计算机可读存储介质
技术分类

06120115847929