CN106598801A - 一种协程监控方法及装置 - Google Patents

一种协程监控方法及装置 Download PDF

Info

Publication number
CN106598801A
CN106598801A CN201510665928.6A CN201510665928A CN106598801A CN 106598801 A CN106598801 A CN 106598801A CN 201510665928 A CN201510665928 A CN 201510665928A CN 106598801 A CN106598801 A CN 106598801A
Authority
CN
China
Prior art keywords
association
journey
operation duration
monitoring
cheng
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.)
Pending
Application number
CN201510665928.6A
Other languages
English (en)
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.)
ZTE Corp
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN201510665928.6A priority Critical patent/CN106598801A/zh
Priority to PCT/CN2016/101467 priority patent/WO2017063521A1/zh
Publication of CN106598801A publication Critical patent/CN106598801A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及通信技术领域,公开了一种协程监控方法及装置,用于解决因协程异常而导致系统延迟的技术问题。该方法包括:在第一进程中,通过监控线程对所述第一进程中的至少一个协程进行监控,以确定所述至少一个协程中是否有协程的运行时长超过预设运行时长;其中,所述至少一个协程中的每个协程均预先记录有各自的预设运行时长;若确定所述至少一个协程中的第一协程的运行时长超过为所述第一协程设定的第一预设运行时长,则通过所述监控线程终止运行所述第一协程。

Description

一种协程监控方法及装置
技术领域
本发明涉及通信技术领域,尤其涉及一种协程监控方法及装置。
背景技术
OpenStack(一种开源的云计算管理平台项目)是一个自由软件和开放源代码云计算管理平台项目,OpenStack通过各种互补的服务提供了IaaS(Infrastructure as a Service,基础设施即服务)的解决方案,是一个旨在为公共云及私有云的建设与管理提供软件的开源项目。
Thread(线程)是linux(一种操作系统)操作系统调度的单位,系统中的多个线程可以通过一些调度策略(比如优先级抢占、时间片轮转等等)来获得CPU(中央处理器)并运行,当CPU拥有多个核的时候,这些线程可以同时执行。
Coroutine(协程)可以认为是用户空间线程,OS(操作系统)对其存在一无所知,需要开发人员在线程中设计好调度,用来执行协作式多任务非常合适。操作系统调度到协程所承载的线程后,线程内部再完成对协程的二级调度。
在使用协程时,如果使用公共资源的协程不是同属于同一个线程,那么需要通过加入互斥锁的机制来保护数据的一致性。那么就存在一个问题:
如果使用公共资源的一个协程出现异常,那么接下来需要使用该公共资源的协程就会一直请求不到用于对数据进行操作的锁,这样其他协程就会一直处于等待状态,从而导致系统出现延迟。
发明内容
本发明提供一种协程监控方法及装置,用于解决因协程异常而导致系统延迟的技术问题。
第一方面,提供一种协程监控方法,包括:
在第一进程中,通过监控线程对所述第一进程中的至少一个协程进行监控,以确定所述至少一个协程中是否有协程的运行时长超过预设运行时长;其中,所述至少一个协程中的每个协程均预先记录有各自的预设运行时长;
若确定所述至少一个协程中的第一协程的运行时长超过为所述第一协程设定的第一预设运行时长,则通过所述监控线程终止运行所述第一协程。
可选的,在通过监控线程对所述第一进程中的至少一个协程进行监控之前,还包括:
在运行所述至少一个协程时,通过所述至少一个协程分别记录各自运行的起始时刻,以及分别记录为各自设定的预设运行时长。
可选的,在终止运行所述第一协程之后,还包括:
对所述第一协程进行初始化。
可选的,在对所述第一协程进行初始化之后,还包括:
重新运行所述第一协程。
可选的,在通过监控线程对所述第一进程中的至少一个协程进行监控之后,还包括:
若所述至少一个协程中的第二协程在运行完毕时的运行时长未超过为所述第二协程设定的第二预设运行时长,则通过所述第二协程注销记录的所述第二协程运行的起始时刻以及所述第二预设运行时长。
第二方面,提供一种协程监控装置,包括:
监控模块,用于在第一进程中,通过监控线程对所述第一进程中的至少一个协程进行监控,以确定所述至少一个协程中是否有协程的运行时长超过预设运行时长;其中,所述至少一个协程中的每个协程均预先记录有各自的预设运行时长;
终止模块,用于若确定所述至少一个协程中的第一协程的运行时长超过为所述第一协程设定的第一预设运行时长,则通过所述监控线程终止运行所述第一协程。
可选的,所述装置还包括记录模块,用于:
在所述监控模块通过监控线程对所述第一进程中的至少一个协程进行监控之前,在运行所述至少一个协程时,通过所述至少一个协程分别记录各自运行的起始时刻,以及分别记录为各自设定的预设运行时长。
可选的,所述装置还包括初始化模块,用于:
在所述终止模块终止运行所述第一协程之后,对所述第一协程进行初始化。
可选的,所述装置还包括操作模块,用于:
在所述初始化模块对所述第一协程进行初始化之后,重新运行所述第一协程。
可选的,所述装置还包括注销模块,用于:
在所述监控模块通过监控线程对所述第一进程中的至少一个协程进行监控之后,若所述至少一个协程中的第二协程在运行完毕时的运行时长未超过为所述第二协程设定的第二预设运行时长,则通过所述第二协程注销记录的所述第二协程运行的起始时刻以及所述第二预设运行时长。
上述技术方案中的一个或两个,至少具有如下技术效果:
在一个进程中,可以运行监控线程,通过监控线程对需要监控的协程(即至少一个协程)进行监控,而需要监控的线程也预先分别记录有各自的预设运行时长,那么若监控线程监控到有运行时长超过相应的预设运行时长的协程,则监控线程可以终止运行该协程,这样可以让其他协程继续运行,避免因一个协程出现异常而导致其他协程都无法正常运行的情况出现,也尽量避免了系统延迟的情况,提高网络质量。
附图说明
图1为协程、线程及进程的层次关系示意图;
图2为本发明实施例中协程监控方法的流程图;
图3为本发明实施例中一种应用场景示意图;
图4为本发明实施例中协程监控装置的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参见图1,为process(进程)、线程和协程的层次关系,进程是资源的一个组织和分配单位,进程中所有的执行流程使用同样的进程空间。线程是系统的一个调度单位,进程下的各线程在操作系统的调度下使用共同的进程空间协同工作,在多核的CPU环境下,可以同时多个线程同时运行。协程是某个线程下的二级调度,操作系统看不到这一层,同一个线程下的协程是串行执行的,因此他们之间可以不用考虑对公共资源的互斥保护。
考虑一种场景:
OpenStack中的Nova-compute服务(一个负责完成虚拟机操作指令的进程,驻留在计算节点上),为了能够及时地响应用户对虚拟机的操作指令,采用了多线程、及线程下面多协程这样的3级管理机制(可参见图1)。一些物理资源的使用信息都是多个线程共用的,也就存在以下问题:
Nova-compute服务会周期性地获取本地的物理资源信息上报到OpenStack的数据库中,如果是不同线程下的协程需要使用这些物理资源,那么需要对资源操作的流程加互斥锁,保证在一个时刻只有一个线程能够访问资源。当消息服务器异常等原因导致资源上报等流程阻塞后,所有需要对该资源进行操作的协程因为等不到用于进行数据操作的锁,则都无法执行,只能都处于等待状态。而这个时候服务状态可能在表面看上去还是正常的,因此需要系统及时发现并自愈。
本发明实施例充分考虑到以上问题,在一个进程中,可以运行监控线程,通过监控线程对需要监控的协程(即至少一个协程)进行监控,而需要监控的线程也预先分别记录有各自的预设运行时长,那么若监控线程监控到有运行时长超过相应的预设运行时长的协程,则监控线程可以终止运行该协程,这样可以让其他协程继续运行,避免因一个协程出现异常而导致其他协程都无法正常运行的情况出现,也尽量避免了系统延迟的情况,提高网络质量。
下面结合附图介绍本发明的优选实施例。
请参见图2,本发明实施例提供一种协程监控方法,该方法的流程描述如下。
步骤201:在第一进程中,通过监控线程对第一进程中的至少一个协程进行监控,以确定至少一个协程中是否有协程的运行时长超过预设运行时长;其中,至少一个协程中的每个协程均预先记录有各自的预设运行时长;
步骤202:若确定至少一个协程中的第一协程的运行时长超过为第一协程设定的第一预设运行时长,则通过监控线程终止运行第一协程。
本发明实施例中,第一进程可以是系统中运行的任意一个进程,即,监控进程可以运行在系统中的任意一个进程中,比如,只要想对一个进程中的协程进行监控,就可以在该进程中运行监控进程。
本发明实施例中,监控线程可以周期性运行,或者也可以在需要时运行,本发明对此不作限制。
本发明实施例中,如果确定一个协程需要被监控,那么可以对该协程进行一些处理,在处理之后,该协程在运行时可以记录运行的起始时刻,以及可以记录为该协程设定的预设运行时长,为该协程设定预设运行时长,可以由用户完成,或者也可以由系统自动完成。例如,一种处理方式如下:
通过python(一种计算机程序设计语言)装饰器,对协程进行装饰。
Python是一种面向对象、解释型计算机程序设计语言。Python装饰器,就是把函数包装一下,为函数添加一些附加功能,但不改变函数原有的处理流程。例如,装饰器也是一个函数,参数为被包装的函数,返回包装后的函数。
假设装饰函数为Function1(),被装饰的函数是Function2(),则只要在声明函数Function2的前面加上@Function1()就可以了。即:
@Function1()
Function2()
这样在调用Function2的时候,会自动调用Function1中为function2补充的附加功能。
那么,本发明实施例中,首先可以定义这个装饰器,即定义一个函数,例如将其称为监控函数,将该监控函数附加到被监控的协程中(即将该监控函数附加到被监控的协程所在的函数),就可以达到监控的目的。
例如,本发明实施例中,定义的监控函数可以完成以下任务:
在系统的登记表中追加一条记录,登记本协程为一个检测点;
记录下协程的进入时间,即运行的起始时刻,以及能够容忍的该协程的运行时长,即该协程的预设运行时长;
在该协程执行完原有流程后,若未超过该协程的预设运行时长,则在登记表中删除本条记录。
在定义好监控函数后,可以将该监控函数附加到被监控的协程所在的函数,这样就完成了对协程的“装饰”。
可选的,在通过监控线程对第一进程中的至少一个协程进行监控之前,还包括:
在运行至少一个协程时,通过至少一个协程分别记录各自运行的起始时刻,以及分别记录为各自设定的预设运行时长。
例如至少一个协程均为第一进程中被“装饰”过的协程,其中,至少一个协程可以是第一进程中的全部协程,或者也可以是第一进程中的部分协程,例如可以是第一进程中需要访问同一公共资源的协程,等等,本发明对此不作限制。
在一个协程被装饰完毕后,该协程开始运行时,通过监控函数,该协程在执行原有的流程前,需首先在登记表中注册一条记录,以记录该协程运行的起始时刻,以及为该协程设定的预设运行时长。在记录完毕后,该协程开始执行原有的流程。
例如,一个进程中有多个协程被装饰,那么这些协程所记录的运行的起始时刻自然可能各自不同,或者也可能有的相同,以及这些协程所记录的各自的预设运行时长也可能相同或不同。即,预设运行时长是针对每个协程所设定,更为符合不同协程的不同运行需求。
而在监控线程开始运行时,监控线程负责对一个进程中所有被装饰过的协程进行监控,这些协程可能受一个线程调度,或者也可能受多个线程调度。
如果监控线程发现被监控的协程中有协程的运行时长超过了该协程记录的预设运行时长,那么监控线程可以终止运行该协程,从而尽量避免该协程影响到其他协程的运行。
可选的,在终止运行第一协程之后,还包括:
对第一协程进行初始化。
在终止运行第一协程后,可以对第一协程进行初始化,因为协程也能保留上一次调用时的状态(即所有局部状态的一个特定组合),每次过程重入时,就相当于进入上一次调用的状态,如果不对第一协程进行初始化,那么如果第一协程确实出现了异常或故障,而未被排除,下次第一协程再运行时,可能又会进入上一次调用的状态,可能会导致第一协程继续运行失败。因此,对第一协程进行初始化,可以避免第一协程再次进入上次的异常状态,尽量保证第一协程下次能够成功运行。
如果检测到某个被监控的协程运行超时(即超过了该协程记录的预设运行时长)了,则监控线程不仅可以终止该协程,还可以将这个协程重新初始化。如前面的场景描述,造成其他协程无法执行的这种阻塞现象的最为常见的原因是本地和消息服务器建立的链接出现了异常,或者本地在死等一个已经丢失了的消息等,而且由于这些协程处理的流程都是周期性的,某个周期执行失败对系统基本没有什么影响,所以采用一种简单高效的自愈策略就是重新把这个协程复位一下,这样它会重新和服务器发起建链以及重新发起周期的处理流程,从而解决前面的阻塞问题。
可选的,在对第一协程进行初始化之后,还包括:
重新运行第一协程。
在对第一协程进行初始化之后,在下个周期到来时,可以重新运行第一协程,以继续实现第一协程能够实现的功能。
可选的,在通过监控线程对第一进程中的至少一个协程进行监控之后,还包括:
若至少一个协程中的第二协程在运行完毕时的运行时长未超过为第二协程设定的第二预设运行时长,则通过第二协程注销记录的第二协程运行的起始时刻以及第二预设运行时长。
如果被监控的协程的实际运行时长未超过该协程事先记录的预设运行时长,那么监控线程不会控制终止该协程,该协程可以自行停止运行,在停止运行之前,该协程可以自动在登记表中注册之前记录的该协程运行的起始时刻以及预设运行时长,这样可以避免登记表中需要存储的内容过多,而且也便于该协程在下次被调度时能够重新进行记录,避免因一个协程的记录太多而导致混乱。
下面介绍一种典型的场景,以及在该场景下如何运用本发明实施例中的技术方案来解决技术问题。
请参见图3。OpenStack的计算节点上的nova-compute服务中有大量的定时周期执行的协程,以周期更新计算节点资源信息的协程和周期上报nova-compute服务心跳保活信息的协程这两个协程最为常见,例如分别将其称为协程1和协程2。
这两个协程,都会通过消息服务器(比如使用AMQP(Advanced MessageQueuing Protocol,高级消息队列协议)的QPID(一种面向对象的消息中间件)或者rabbitMQ(一种企业消息系统)等)来把数据上报给OpenStack中的数据库。当消息服务器重启等异常流程出现后,计算节点和消息服务器创建的链接可能会出现异常,或者一些应答消息可能会丢失,导致消息发送端(例如协程1或协程2)会一直处于等待应答状态,这样,处于等待应答状态的协程不会释放已经申请的数据锁。那么,其他的协程就会一直请求不到用于操作数据的锁,而也不得不一直处于等待互斥锁的状态。
虚拟机的操作动作,一般都是系统管理员现场操作,或者系统在容灾备份、业务弹性伸缩的时候发起,对实时性要求相对较高,不允许长时间得不到响应,更严重的是消息服务器引起的这种异常是无法自己恢复的,也就是左侧的虚拟机流程中等待应答的协程可能无论等多长时间也会一直处于等待应答状态,这样其他的协程就会一直无法运行,这就会导致系统的延迟,甚至会导致系统的故障,所以终止这种异常状态极为重要。
采用本发明实施例中提供的技术方案,可以首先定义监控函数,将监控函数附加到需监控的协程中,则被监控的协程在运行时,会在执行原有流程前先去登记表中注册一条记录,以记录运行的起始时刻以及该协程的预设运行时长,然后再转去执行原有的协程流程。
监控线程例如是一个周期执行的流程,监控线程可以周期地检查登记表中的每条登记的记录是否已经超时,如果超时,则将这条记录对应的协程终止运行,并对该协程进行初始化,例如可以初始化它和消息服务器的链接关系,到下个周期时该协程可重新运行,因为对该协程进行了初始化,也就达到了自动解除阻塞的目的,使系统能够自愈。
如果一个被监控的协程在执行完原有的协程流程后的运行时长未超过该协程事先记录的预设运行时长,那么监控进程不会终止该协程,该协程可以正常运行,在该协程执行完原有的协程流程后,可以在登记表中注销之前注册的记录。
通过本发明实施例所提供的方案,较好地解决了OpenStack系统因部分协程阻塞而导致看似一切正常的情况下没法执行虚拟机的正常操作指令的问题。另外,本发明的设计原理同样可以适用于所有的python进程下死锁死循环的检测等。
以下结合附图介绍本发明实施例中的装置。
请参见图4,基于同一发明构思,本发明实施例提供一种协程监控装置,该装置可以包括监控模块401和终止模块402。例如该装置中的各模块可以通过硬件方式实现,或者也可以通过软件方式实现。
监控模块401,用于在第一进程中,通过监控线程对第一进程中的至少一个协程进行监控,以确定至少一个协程中是否有协程的运行时长超过预设运行时长;其中,至少一个协程中的每个协程均预先记录有各自的预设运行时长;
终止模块402,用于若确定至少一个协程中的第一协程的运行时长超过为第一协程设定的第一预设运行时长,则通过监控线程终止运行第一协程。
可选的,所述装置还包括记录模块,用于:
在监控模块401通过监控线程对第一进程中的至少一个协程进行监控之前,在运行至少一个协程时,通过至少一个协程分别记录各自运行的起始时刻,以及分别记录为各自设定的预设运行时长。
可选的,所述装置还包括初始化模块,用于:
在终止模块402终止运行第一协程之后,对第一协程进行初始化。
可选的,所述装置还包括操作模块,用于:
在初始化模块对第一协程进行初始化之后,重新运行第一协程。
可选的,所述装置还包括注销模块,用于:
在监控模块401通过监控线程对第一进程中的至少一个协程进行监控之后,若至少一个协程中的第二协程在运行完毕时的运行时长未超过为第二协程设定的第二预设运行时长,则通过第二协程注销记录的第二协程运行的起始时刻以及第二预设运行时长。
本发明实施例中,在一个进程中,可以运行监控线程,通过监控线程对需要监控的协程进行监控,而需要监控的线程也预先分别记录有各自的预设运行时长,那么若监控线程监控到有运行时长超过相应的预设运行时长的协程,则监控线程可以终止运行该协程,这样可以让其他协程继续运行,避免因一个协程出现异常而导致其他协程都无法正常运行的情况出现,也尽量避免了系统延迟的情况,提高网络质量。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能单元的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元完成,即将装置的内部结构划分成不同的功能单元,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以对本申请的技术方案进行了详细介绍,但以上实施例的说明只是用于帮助理解本发明实施例的方法,不应理解为对本发明实施例的限制。本技术领域的技术人员在本发明实施例揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明实施例的保护范围之内。

Claims (10)

1.一种协程监控方法,其特征在于,包括:
在第一进程中,通过监控线程对所述第一进程中的至少一个协程进行监控,以确定所述至少一个协程中是否有协程的运行时长超过预设运行时长;其中,所述至少一个协程中的每个协程均预先记录有各自的预设运行时长;
若确定所述至少一个协程中的第一协程的运行时长超过为所述第一协程设定的第一预设运行时长,则通过所述监控线程终止运行所述第一协程。
2.如权利要求1所述的方法,其特征在于,在通过监控线程对所述第一进程中的至少一个协程进行监控之前,还包括:
在运行所述至少一个协程时,通过所述至少一个协程分别记录各自运行的起始时刻,以及分别记录为各自设定的预设运行时长。
3.如权利要求1或2所述的方法,其特征在于,在终止运行所述第一协程之后,还包括:
对所述第一协程进行初始化。
4.如权利要求3所述的方法,其特征在于,在对所述第一协程进行初始化之后,还包括:
重新运行所述第一协程。
5.如权利要求4所述的方法,其特征在于,在通过监控线程对所述第一进程中的至少一个协程进行监控之后,还包括:
若所述至少一个协程中的第二协程在运行完毕时的运行时长未超过为所述第二协程设定的第二预设运行时长,则通过所述第二协程注销记录的所述第二协程运行的起始时刻以及所述第二预设运行时长。
6.一种协程监控装置,其特征在于,包括:
监控模块,用于在第一进程中,通过监控线程对所述第一进程中的至少一个协程进行监控,以确定所述至少一个协程中是否有协程的运行时长超过预设运行时长;其中,所述至少一个协程中的每个协程均预先记录有各自的预设运行时长;
终止模块,用于若确定所述至少一个协程中的第一协程的运行时长超过为所述第一协程设定的第一预设运行时长,则通过所述监控线程终止运行所述第一协程。
7.如权利要求6所述的装置,其特征在于,所述装置还包括记录模块,用于:
在所述监控模块通过监控线程对所述第一进程中的至少一个协程进行监控之前,在运行所述至少一个协程时,通过所述至少一个协程分别记录各自运行的起始时刻,以及分别记录为各自设定的预设运行时长。
8.如权利要求6或7所述的装置,其特征在于,所述装置还包括初始化模块,用于:
在所述终止模块终止运行所述第一协程之后,对所述第一协程进行初始化。
9.如权利要求8所述的装置,其特征在于,所述装置还包括操作模块,用于:
在所述初始化模块对所述第一协程进行初始化之后,重新运行所述第一协程。
10.如权利要求9所述的装置,其特征在于,所述装置还包括注销模块,用于:
在所述监控模块通过监控线程对所述第一进程中的至少一个协程进行监控之后,若所述至少一个协程中的第二协程在运行完毕时的运行时长未超过为所述第二协程设定的第二预设运行时长,则通过所述第二协程注销记录的所述第二协程运行的起始时刻以及所述第二预设运行时长。
CN201510665928.6A 2015-10-15 2015-10-15 一种协程监控方法及装置 Pending CN106598801A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201510665928.6A CN106598801A (zh) 2015-10-15 2015-10-15 一种协程监控方法及装置
PCT/CN2016/101467 WO2017063521A1 (zh) 2015-10-15 2016-10-08 协程监控方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510665928.6A CN106598801A (zh) 2015-10-15 2015-10-15 一种协程监控方法及装置

Publications (1)

Publication Number Publication Date
CN106598801A true CN106598801A (zh) 2017-04-26

Family

ID=58517814

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510665928.6A Pending CN106598801A (zh) 2015-10-15 2015-10-15 一种协程监控方法及装置

Country Status (2)

Country Link
CN (1) CN106598801A (zh)
WO (1) WO2017063521A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107329812A (zh) * 2017-06-09 2017-11-07 腾讯科技(深圳)有限公司 一种运行协程的方法和装置
CN107463438A (zh) * 2017-08-03 2017-12-12 郑州云海信息技术有限公司 用于多Openstack环境的信息处理方法、装置和系统
CN109257411A (zh) * 2018-07-31 2019-01-22 平安科技(深圳)有限公司 一种业务处理方法、调用管理系统和计算机设备
CN110618868A (zh) * 2019-08-29 2019-12-27 凡普数字技术有限公司 对数据进行批量写入的方法、装置以及存储介质
CN112181600A (zh) * 2020-10-21 2021-01-05 朱领军 一种云计算资源管理方法及系统
CN116663868A (zh) * 2023-08-01 2023-08-29 深圳市特旺电子有限公司 Pcb线路板组装进度监控系统

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110955520A (zh) * 2019-11-05 2020-04-03 中国电力科学研究院有限公司 一种面向电能表的多任务调度方法和系统
CN112905267B (zh) * 2019-12-03 2024-05-10 阿里巴巴集团控股有限公司 虚拟机接入协程库的方法、装置及设备
CN112015551B (zh) * 2020-08-26 2024-06-04 京东方科技集团股份有限公司 协程池的管理方法及装置
CN113641506B (zh) * 2021-07-02 2024-07-26 西藏宁算科技集团有限公司 基于Golang语言的多协程同步屏障方法、装置
CN117032844B (zh) * 2023-10-07 2024-01-09 北京集度科技有限公司 一种协程链路追踪装置、方法及智能车辆

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7784051B2 (en) * 2005-11-18 2010-08-24 Sap Ag Cooperative scheduling using coroutines and threads
CN103473031B (zh) * 2013-01-18 2015-11-18 龙建 协同并发式消息总线、主动构件组装模型及构件拆分方法
CN103473032B (zh) * 2013-01-18 2016-01-27 龙建 独立主动构件和可运行主动构件组装模型及构件拆分方法
CN104142858B (zh) * 2013-11-29 2016-09-28 腾讯科技(深圳)有限公司 阻塞任务调度方法及装置
US9516100B2 (en) * 2014-02-05 2016-12-06 Travis T. Wilson Method and system for executing third-party agent code in a data processing system

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107329812A (zh) * 2017-06-09 2017-11-07 腾讯科技(深圳)有限公司 一种运行协程的方法和装置
CN107463438A (zh) * 2017-08-03 2017-12-12 郑州云海信息技术有限公司 用于多Openstack环境的信息处理方法、装置和系统
CN107463438B (zh) * 2017-08-03 2020-09-08 郑州云海信息技术有限公司 用于多Openstack环境的信息处理方法、装置和系统
CN109257411A (zh) * 2018-07-31 2019-01-22 平安科技(深圳)有限公司 一种业务处理方法、调用管理系统和计算机设备
WO2020024469A1 (zh) * 2018-07-31 2020-02-06 平安科技(深圳)有限公司 一种业务处理方法、调用管理系统和计算机设备
CN109257411B (zh) * 2018-07-31 2021-12-24 平安科技(深圳)有限公司 一种业务处理方法、调用管理系统和计算机设备
CN110618868A (zh) * 2019-08-29 2019-12-27 凡普数字技术有限公司 对数据进行批量写入的方法、装置以及存储介质
CN112181600A (zh) * 2020-10-21 2021-01-05 朱领军 一种云计算资源管理方法及系统
CN116663868A (zh) * 2023-08-01 2023-08-29 深圳市特旺电子有限公司 Pcb线路板组装进度监控系统
CN116663868B (zh) * 2023-08-01 2024-04-19 江门市科能电子有限公司 Pcb线路板组装进度监控系统

Also Published As

Publication number Publication date
WO2017063521A1 (zh) 2017-04-20

Similar Documents

Publication Publication Date Title
CN106598801A (zh) 一种协程监控方法及装置
CN107291547B (zh) 一种任务调度处理方法、装置及系统
EP2614436B1 (en) Controlled automatic healing of data-center services
CN105389243B (zh) 一种容器监控方法和装置
EP1839152B1 (en) Predictive method for managing, logging or replaying non-deterministic operations within the execution of an application process
WO2017128961A1 (zh) 一种分布式系统中的训练模型的方法及设备
US8904361B2 (en) Non-intrusive method for logging of internal events within an application process, and system implementing this method
US7613597B2 (en) Non-intrusive method for simulation or replay of external events related to an application process, and a system implementing said method
US9262220B2 (en) Scheduling workloads and making provision decisions of computer resources in a computing environment
US20060167950A1 (en) Method for the management, logging or replay of the execution of an application process
US7568131B2 (en) Non-intrusive method for logging external events related to an application process, and a system implementing said method
CN111052086A (zh) 一种云托管函数的暖启动技术
US7840940B2 (en) Semantic management method for logging or replaying non-deterministic operations within the execution of an application process
US20080046696A1 (en) Non-Intrusive Method for Replaying Internal Events In An Application Process, And System Implementing This Method
JP2008186136A (ja) 計算機システム
CN107273231A (zh) 分布式存储系统硬盘挂住故障检测、处理方法及装置
CN108021378A (zh) 升级系统、基于虚拟机的升级方法及装置
US10223164B2 (en) Execution of critical tasks based on the number of available processing entities
US20060167932A1 (en) Method for the acceleration of the transmission of logging data in a multi-computer environment and system using this method
US10592107B2 (en) Virtual machine storage management queue
CN112306669A (zh) 一种基于多核系统的任务处理方法及装置
CN106412088B (zh) 一种数据同步方法及终端
CN103744728A (zh) 一种基于动态ple技术的虚拟机协同调度方法
US11269675B2 (en) Comprehensive scheduling method and device for problem of interruptability holder preemption
US7533296B2 (en) Method for optimizing the transmission of logging data in a multi-computer environment and a system implementing this method

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20170426