协程监控方法、装置、设备及可读存储介质与流程

文档序号:37002980发布日期:2024-02-09 12:47阅读:19来源:国知局
协程监控方法、装置、设备及可读存储介质与流程

本申请涉及协程调度,具体涉及一种协程监控方法、装置、设备及可读存储介质。


背景技术:

1、协程是一种用户态的轻量级线程,协程内部由一个调度器从多个任务队列中按一定调度策略获取任务进行执行,当一个任务完成后,调度器会从任务队列中获取新的任务进行执行。基于上述原理,任务切换时不用切换内核态,并且将操作相同资源的任务放到同一个任务队列就可以实现天然的免锁机制,在保持异步化运行机制的同时,还能用同步的方式写代码,这既实现了高并发,又缩短了开发周期。

2、但是在实际应用中,往往存在某个任务因任务机制或程序错误等原因,运行时间过长甚至阻塞,导致其他任务得不到调度,而调度器因其实现原理,需要等待正在执行的任务完成后才能对故障进行处理,若发生阻塞,会导致故障扩散,进而阻塞整个协程程序的调度,严重时甚至会使服务不可用。


技术实现思路

1、本申请提供一种协程监控方法、装置、设备及可读存储介质,可以解决现有技术中存在的协程中任务运行时间过长影响协程正常运行的技术问题。

2、第一方面,本申请实施例提供一种协程监控方法,所述协程监控方法包括:

3、通过监控线程监测每个协程的当前任务的运行时长;

4、若某一协程的当前任务的运行时长大于预设任务时长,则通过监控线程创建临时线程,其中,临时线程用于针对该任务执行超时处理,并在执行完毕后自动销毁。

5、进一步地,一实施例中,在所述通过监控线程创建临时线程的步骤之后还包括:

6、通过监控线程监测临时线程的运行时长;

7、若临时线程的运行时长大于预设线程时长,则通过监控线程销毁临时线程。

8、进一步地,一实施例中,所述若某一协程的当前任务的运行时长大于预设任务时长,则通过监控线程创建临时线程的步骤包括:

9、若某一协程的当前任务的运行时长大于第一任务时长,则通过监控线程创建第一临时线程,其中,第一临时线程用于将该协程标记为不可用状态。

10、进一步地,一实施例中,所述若某一协程的当前任务的运行时长大于预设任务时长,则通过监控线程创建临时线程的步骤还包括:

11、若某一协程的当前任务的运行时长大于第二任务时长,则通过监控线程创建第二临时线程,其中,第二任务时长小于第一任务时长,第二临时线程用于将第二任务时长,该任务的运行起始时刻、任务编号、运行时长和调用栈,以及该协程的调度器信息写入日志,并输出告警提示。

12、进一步地,一实施例中,所述若某一协程的当前任务的运行时长大于预设任务时长,则通过监控线程创建临时线程的步骤还包括:

13、若某一协程的当前任务的运行时长大于第三任务时长,则通过监控线程创建第三临时线程,其中,第三任务时长小于第二任务时长,第三临时线程用于将第三任务时长以及该任务的运行起始时刻、任务编号和运行时长写入日志。

14、进一步地,一实施例中,每个协程在初始化阶段将调度器信息写入监控线程,并在调度每个任务时将对应任务的运行起始时刻和任务编号写入监控线程。

15、进一步地,一实施例中,每个协程在调度每个任务时将对应任务的运行起始时刻写入监控线程;

16、针对每个协程,监控线程根据当前时刻和最新写入的运行起始时刻确定对应协程的当前任务的运行时长。

17、第二方面,本申请实施例还提供一种协程监控装置,所述协程监控装置包括:

18、监测模块,用于通过监控线程监测每个协程的当前任务的运行时长;

19、创建模块,用于若某一协程的当前任务的运行时长大于预设任务时长,则通过监控线程创建临时线程,其中,临时线程用于针对该任务执行超时处理,并在执行完毕后自动销毁。

20、第三方面,本申请实施例还提供一种协程监控设备,所述协程监控设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的协程监控程序,其中所述协程监控程序被所述处理器执行时,实现上述协程监控方法的步骤。

21、第四方面,本申请实施例还提供一种可读存储介质,所述可读存储介质上存储有协程监控程序,其中所述协程监控程序被处理器执行时,实现上述协程监控方法的步骤。

22、本申请中,通过监控线程监测每个协程的当前任务的运行时长,相比在协程内部实施监测,监控线程的监测周期不会受到协程调度的影响,通过监控线程创建的临时线程针对超时任务执行超时处理,避免监控线程直接执行超时处理影响监测周期,临时线程在执行完毕后自动销毁以节省资源。通过本申请,对协程中的任务运行时长进行持续稳定的监测,并及时针对超时任务执行超时处理,从而确保协程正常运行。



技术特征:

1.一种协程监控方法,其特征在于,所述协程监控方法包括:

2.如权利要求1所述的协程监控方法,其特征在于,在所述通过监控线程创建临时线程的步骤之后还包括:

3.如权利要求1所述的协程监控方法,其特征在于,所述若某一协程的当前任务的运行时长大于预设任务时长,则通过监控线程创建临时线程的步骤包括:

4.如权利要求3所述的协程监控方法,其特征在于,所述若某一协程的当前任务的运行时长大于预设任务时长,则通过监控线程创建临时线程的步骤还包括:

5.如权利要求4所述的协程监控方法,其特征在于,所述若某一协程的当前任务的运行时长大于预设任务时长,则通过监控线程创建临时线程的步骤还包括:

6.如权利要求4所述的协程监控方法,其特征在于,每个协程在初始化阶段将调度器信息写入监控线程,并在调度每个任务时将对应任务的运行起始时刻和任务编号写入监控线程。

7.如权利要求1至6中任一项所述的协程监控方法,其特征在于,每个协程在调度每个任务时将对应任务的运行起始时刻写入监控线程;

8.一种协程监控装置,其特征在于,所述协程监控装置包括:

9.一种协程监控设备,其特征在于,所述协程监控设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的协程监控程序,其中所述协程监控程序被所述处理器执行时,实现如权利要求1至7中任一项所述的协程监控方法的步骤。

10.一种可读存储介质,其特征在于,所述可读存储介质上存储有协程监控程序,其中所述协程监控程序被处理器执行时,实现如权利要求1至7中任一项所述的协程监控方法的步骤。


技术总结
本申请提供一种协程监控方法、装置、设备及可读存储介质,该方法包括:通过监控线程监测每个协程的当前任务的运行时长;若某一协程的当前任务的运行时长大于预设任务时长,则通过监控线程创建临时线程,其中,临时线程用于针对该任务执行超时处理,并在执行完毕后自动销毁。本申请中,监测周期不会受到协程调度和超时处理的影响,对协程中的任务运行时长进行持续稳定的监测,并及时针对超时任务执行超时处理,从而确保协程正常运行。

技术研发人员:安佳星
受保护的技术使用者:中电云计算技术有限公司
技术研发日:
技术公布日:2024/2/8
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1