【技术实现步骤摘要】
本专利技术涉及计算机领域,具体而言,涉及一种基于TPL Dataflow的状态监控方法及装置。
技术介绍
TPL是TASK Parallel Library的简称,TPL Dataflow是微软面向高并发应用而推出的类库,借助于异步消息传递与管理,提供比线程池更好的控制。TPL Dataflow提供了一种类似流水线的数据处理视图,数据流中的数据处理节点被称作数据流块(Dataflow Block)。每个Dataflow Block包含一个Input Buffer和Output Buffer。在处理数据流的时候,有必要让开发人员随时了解当前\流水线\的工作状态,以及时了解流水线是否存在故障。一种传统的监视方法是异步地轮询每个Block的Input Buffer和Output Buffer数目,试图了解每个Block的运作状态。然而这种方式是以数字形式展现,非常不直观,开发人员不能一眼看出哪些Block存在故障;而且,这种方式只展现了每个Block的待处理队列和待传出队列的信息,有时候依然无法给出定位故障Block所需的信息。比如,很多时候,假若某故障Block将待处理数据缓存到了Block内部,并且在内部出现某种故障、不再产生输出,也不结束。此时通过基于Input\\Output Count的监视器,会看到所有Block的Input Count和Output Count都是0,但是,却无法知道哪些Block已结束、哪些Bl ...
【技术保护点】
一种基于TPL Dataflow的状态监控方法,其特征在于,包括:在.Net开发环境中调用TPL Dataflow类库,并通过所述TPL Dataflow类库中的一个或多个级块Block构成用于处理数据的处理通道;获取预先设置的需要监视的所述级块Block的集合列表;遍历所述级块Block的集合列表中的各个级块Block,获取所述处理通道中的各个级块Block的状态属性;根据所述各个级块Block的状态属性,确定所述级块Block的运行状态。
【技术特征摘要】
1.一种基于TPL Dataflow的状态监控方法,其特征在于,包括:
在.Net开发环境中调用TPL Dataflow类库,并通过所述TPL Dataflow类库中
的一个或多个级块Block构成用于处理数据的处理通道;
获取预先设置的需要监视的所述级块Block的集合列表;
遍历所述级块Block的集合列表中的各个级块Block,获取所述处理通道中的
各个级块Block的状态属性;
根据所述各个级块Block的状态属性,确定所述级块Block的运行状态。
2.根据权利要求1所述的方法,其特征在于,遍历所述级块Block的集合列表中的
各个级块Block,获取所述处理通道中的各个级块Block的状态属性的步骤还包
括:
接收触发信号,其中,所述触发信号至少包括如下任意一种生成方式:通过
用户手动点击触发控件生成所述触发信号、通过预先设定的发送频率生成所述触
发信号;
当接收到所述触发信号时,根据所述级块Block的集合列表获取所述级块
Block的状态属性。
3.根据权利要求2所述的方法,其特征在于,根据所述各个级块Block的状态属性,
确定所述级块Block的运行状态的步骤还包括:
遍历所述处理通道中的各个级块Block,确定所述处理通道中级块Block的总
数量;
根据所述处理通道中所包含的级块Block的总数量和所述各个级块的Block
的状态属性,确定所述处理通道的工作状态;
将所述各个级块的Block的状态属性与所述处理通道的所述工作状态进行比
对,确定所述各个级块Block的运行状态。
4.根据权利要求3所述的方法,其特征在于,当所述状态属性至少包括:运行中和
完成时,其中,根据所述处理通道中所包含的级块Block的总数量和所述各个级
块的Block的所述状态属性,确定所述处理通道的工作状态的步骤还包括:
根据所述各个级块Block的所述状态属性,确定所述状态属性为所述运行中
的级块Block的运行数量;
根据所述级块Block的运行数量和所述处理通道中级块Block的总数量,计
算得出所述状态属性为运行中的级块Block的运行比例;
根据所述运行比例,确定所述处理通道的所述工作状态。
5.根据权利要求1至4中任意一项所述的方法,其特征在于,在获取预先设置的需
要监视的所述级块Block的集合列表之前,所述方法还包括:
遍历所述处理通道中的所述级块Block,生成所述级...
【专利技术属性】
技术研发人员:储雨知,
申请(专利权)人:北京国双科技有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。