基于TPL Dataflow的狀態(tài)監(jiān)控方法及裝置制造方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種基于TPL Dataflow的狀態(tài)監(jiān)控方法及裝置。其中,該方法包括:在.Net開(kāi)發(fā)環(huán)境中調(diào)用TPL Dataflow類(lèi)庫(kù),并通過(guò)TPL Dataflow類(lèi)庫(kù)中的一個(gè)或多個(gè)級(jí)塊Block構(gòu)成用于處理數(shù)據(jù)的處理通道;獲取預(yù)先設(shè)置的需要監(jiān)視的級(jí)塊Block的集合列表;遍歷級(jí)塊Block的集合列表中的各個(gè)級(jí)塊Block,獲取處理通道中的各個(gè)級(jí)塊Block的狀態(tài)屬性;根據(jù)各個(gè)級(jí)塊Block的狀態(tài)屬性,確定級(jí)塊Block的運(yùn)行狀態(tài)。本發(fā)明解決了現(xiàn)有技術(shù)中每次手動(dòng)查看各個(gè)級(jí)塊Block的狀態(tài)屬性導(dǎo)致的操作繁瑣、效率低下的問(wèn)題。
【專(zhuān)利說(shuō)明】基于TPL Dataf I ow的狀態(tài)監(jiān)控方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,具體而言,涉及一種基于TPL Dataflow的狀態(tài)監(jiān)控方法及裝置。
【背景技術(shù)】
[0002]TPL是TASK Parallel Library的簡(jiǎn)稱(chēng),TPL Dataflow是微軟面向高并發(fā)應(yīng)用而推出的類(lèi)庫(kù),借助于異步消息傳遞與管理,提供比線程池更好的控制。TPL Dataflow提供了一種類(lèi)似流水線的數(shù)據(jù)處理視圖,數(shù)據(jù)流中的數(shù)據(jù)處理節(jié)點(diǎn)被稱(chēng)作數(shù)據(jù)流塊(DataflowBlock)。每個(gè) Dataflow Block 包含一個(gè) Input Buffer 和 Output Buffer。在處理數(shù)據(jù)流的時(shí)候,有必要讓開(kāi)發(fā)人員隨時(shí)了解當(dāng)前"流水線"的工作狀態(tài),以及時(shí)了解流水線是否存在故障。
[0003]一種傳統(tǒng)的監(jiān)視方法是異步地輪詢(xún)每個(gè)Block的Input Buffer和Output Buffer數(shù)目,試圖了解每個(gè)Block的運(yùn)作狀態(tài)。然而這種方式是以數(shù)字形式展現(xiàn),非常不直觀,開(kāi)發(fā)人員不能一眼看出哪些Block存在故障;而且,這種方式只展現(xiàn)了每個(gè)Block的待處理隊(duì)列和待傳出隊(duì)列的信息,有時(shí)候依然無(wú)法給出定位故障Block所需的信息。比如,很多時(shí)候,假若某故障Block將待處理數(shù)據(jù)緩存到了 Block內(nèi)部,并且在內(nèi)部出現(xiàn)某種故障、不再產(chǎn)生輸出,也不結(jié)束。此時(shí)通過(guò)基于Input\Output Count的監(jiān)視器,會(huì)看到所有Block的Input Count和Output Count都是0,但是,卻無(wú)法知道哪些Block已結(jié)束、哪些Block還在運(yùn)行,無(wú)法找到故障Block。
[0004]針對(duì)現(xiàn)有技術(shù)中每次手動(dòng)查看各個(gè)級(jí)塊Block的狀態(tài)屬性導(dǎo)致的操作繁瑣、效率低下的問(wèn)題,目前尚未提出有效的解決方案。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的主要目的在于提供一種基于TPL Dataflow的狀態(tài)監(jiān)控方法及裝置,以解決現(xiàn)有技術(shù)中每次手動(dòng)查看各個(gè)級(jí)塊Block的狀態(tài)屬性導(dǎo)致的操作繁瑣、效率低下問(wèn)題。
[0006]為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明實(shí)施例的一個(gè)方面,提供了一種基于TPLDataflow的狀態(tài)監(jiān)控方法。該方法包括:在.Net開(kāi)發(fā)環(huán)境中調(diào)用TPL Dataflow類(lèi)庫(kù),并通過(guò)TPLDataflow類(lèi)庫(kù)中的一個(gè)或多個(gè)級(jí)塊Block構(gòu)成用于處理數(shù)據(jù)的處理通道;獲取預(yù)先設(shè)置的需要監(jiān)視的級(jí)塊Block的集合列表;遍歷級(jí)塊Block的集合列表中的各個(gè)級(jí)塊Block,獲取處理通道中的各個(gè)級(jí)塊Block的狀態(tài)屬性;根據(jù)各個(gè)級(jí)塊Block的狀態(tài)屬性,確定級(jí)塊Block的運(yùn)行狀態(tài)。
[0007]為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明實(shí)施例的另一方面,提供了一種基于TPLDataflow的狀態(tài)監(jiān)控裝置,該裝置包括:構(gòu)成單元,用于在.Net開(kāi)發(fā)環(huán)境中調(diào)用TPLDataflow類(lèi)庫(kù);并通過(guò)TPL Dataflow類(lèi)庫(kù)中的一個(gè)或多個(gè)級(jí)塊Block構(gòu)成用于處理數(shù)據(jù)的處理通道;第一獲取單元,用于獲取預(yù)先設(shè)置的需要監(jiān)視的級(jí)塊Block的集合列表;第二獲取單元,用于遍歷級(jí)塊Block的集合列表中的各個(gè)級(jí)塊Block,獲取處理通道中的各個(gè)級(jí)塊Block的狀態(tài)屬性;處理單元,用于根據(jù)各個(gè)級(jí)塊Block的狀態(tài)屬性,確定級(jí)塊Block的運(yùn)行狀態(tài)。
[0008]根據(jù)發(fā)明實(shí)施例,通過(guò)獲取各個(gè)級(jí)塊Block的狀態(tài)屬性,進(jìn)而確定各個(gè)級(jí)塊Block的運(yùn)行狀態(tài),解決了現(xiàn)有技術(shù)中每次手動(dòng)查看各個(gè)級(jí)塊Block的狀態(tài)屬性導(dǎo)致的操作繁瑣、效率低下的問(wèn)題。實(shí)現(xiàn)了準(zhǔn)確、直觀的判斷某一個(gè)Block運(yùn)行狀態(tài),進(jìn)而能夠快速、精確的在數(shù)據(jù)處理通道中定位到出現(xiàn)故障的Block的效果。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0009]構(gòu)成本申請(qǐng)的一部分的附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,本發(fā)明的示意性實(shí)施例及其說(shuō)明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
[0010]圖1是根據(jù)本發(fā)明實(shí)施例一的基于TPL Dataflow的狀態(tài)監(jiān)控方法的流程圖;以及
[0011]圖2是根據(jù)本發(fā)明實(shí)施例二的基于TPL Dataflow的狀態(tài)監(jiān)控裝置的框圖。
【具體實(shí)施方式】
[0012]需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。下面將參考附圖并結(jié)合實(shí)施例來(lái)詳細(xì)說(shuō)明本發(fā)明。
[0013]為了使本【技術(shù)領(lǐng)域】的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分的實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。
[0014]需要說(shuō)明的是,本發(fā)明的說(shuō)明書(shū)和權(quán)利要求書(shū)及上述附圖中的術(shù)語(yǔ)“第一”、“第二”等是用于區(qū)別類(lèi)似的對(duì)象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實(shí)施例。此外,術(shù)語(yǔ)“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過(guò)程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒(méi)有清楚地列出的或?qū)τ谶@些過(guò)程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
[0015]實(shí)施例1
[0016]本發(fā)明實(shí)施例提供了一種基于TPL Dataflow的狀態(tài)監(jiān)控方法。
[0017]圖1是根據(jù)本發(fā)明實(shí)施例的基于TPL Dataflow的狀態(tài)監(jiān)控方法的流程圖。如圖1所示,該方法包括步驟如下:
[0018]步驟S11,在.Net開(kāi)發(fā)環(huán)境中調(diào)用TPL Dataflow類(lèi)庫(kù),并通過(guò)TPL Dataflow類(lèi)庫(kù)中的一個(gè)或多個(gè)級(jí)塊Block構(gòu)成用于處理數(shù)據(jù)的處理通道。
[0019]具體的,在上述步驟Sll中,TPL Dataflow類(lèi)庫(kù)中包含了各種功能不同的級(jí)塊Block,可以根據(jù)需求在處理通道中加入功能不同的級(jí)塊Block。
[0020]步驟S13,獲取預(yù)先設(shè)置的需要監(jiān)視的級(jí)塊Block的集合列表。
[0021]具體的,在上述步驟S13中,可以將需要監(jiān)視的級(jí)塊Block加入至集合列表當(dāng)中,把性能穩(wěn)定的級(jí)塊Block從集合列表中刪除,這樣,通過(guò)預(yù)先設(shè)置的級(jí)塊Block的集合列表,就可以方便的對(duì)需要進(jìn)行監(jiān)控的級(jí)塊Block進(jìn)行設(shè)置。
[0022]步驟S15,遍歷級(jí)塊Block的集合列表中的各個(gè)級(jí)塊Block,獲取處理通道中的各個(gè)級(jí)塊Block的狀態(tài)屬性。
[0023]具體的,在上述步驟S15中,可以通過(guò)獲取每個(gè)Block的Complet1n Task屬性,可以清晰的判斷該Block的工作狀態(tài),是正在運(yùn)行,還是已經(jīng)運(yùn)行結(jié)束。Complet1n Task屬性有助于判斷Block的真實(shí)狀態(tài)。
[0024]步驟S17,根據(jù)各個(gè)級(jí)塊Block的狀態(tài)屬性,確定級(jí)塊Block的運(yùn)行狀態(tài)。
[0025]具體的,在上述步驟S17中,通過(guò)級(jí)塊Block的狀態(tài)屬性?xún)H用來(lái)表示當(dāng)前級(jí)塊Block的在實(shí)際運(yùn)行中所處于的狀態(tài),而級(jí)塊Block的運(yùn)行狀態(tài),則是相比于整個(gè)處理通道而言,著重描述的是該級(jí)塊Block的狀態(tài)對(duì)于真?zhèn)€數(shù)據(jù)處理通道的貢獻(xiàn),若該級(jí)塊Block能夠執(zhí)行且正確的執(zhí)行處理通道分配的任務(wù),則認(rèn)為該級(jí)塊Block的運(yùn)行狀態(tài)正常;若該級(jí)塊Block不能夠執(zhí)行處理通道分配的任務(wù),則該級(jí)塊Block的狀態(tài)屬性表現(xiàn)異常;若該級(jí)塊Block能夠執(zhí)行但錯(cuò)誤的執(zhí)行處理通道分配的任務(wù),雖然從狀態(tài)屬性上看該級(jí)塊Block并無(wú)異常,但此時(shí)仍認(rèn)為該級(jí)塊Block的運(yùn)行狀態(tài)非正常。
[0026]綜上可知,本發(fā)明解決了現(xiàn)有技術(shù)中每次手動(dòng)查看各個(gè)級(jí)塊Block的狀態(tài)屬性導(dǎo)致的操作繁瑣、效率低下的問(wèn)題。實(shí)現(xiàn)了準(zhǔn)確、直觀的判斷某一個(gè)級(jí)塊Block運(yùn)行狀態(tài),進(jìn)而能夠快速、精確的在數(shù)據(jù)處理通道中定位到出現(xiàn)故障的級(jí)塊Block的效果。
[0027]優(yōu)選的,在步驟S15遍歷級(jí)塊Block的集合列表中的各個(gè)級(jí)塊Block,獲取處理通道中的各個(gè)級(jí)塊Block的狀態(tài)屬性中,步驟還包括:
[0028]步驟S151,接收觸發(fā)信號(hào),其中,觸發(fā)信號(hào)至少包括如下任意一種生成方式:通過(guò)用戶(hù)手動(dòng)點(diǎn)擊觸發(fā)控件生成觸發(fā)信號(hào)、通過(guò)預(yù)先設(shè)定的發(fā)送頻率生成觸發(fā)信號(hào)。
[0029]步驟S153,當(dāng)接收到觸發(fā)信號(hào)時(shí),根據(jù)級(jí)塊Block的集合列表獲取級(jí)塊Block的狀態(tài)屬性。
[0030]具體的,通過(guò)上述步驟S151至步驟S153,監(jiān)視器會(huì)異步運(yùn)行一個(gè)任務(wù),該任務(wù),每隔一定時(shí)間,就會(huì)根據(jù)集合列表,輪詢(xún)?cè)揃lock集合列表中的所有Block,獲取所有Block的狀態(tài)屬性并進(jìn)行打印。此實(shí)例中,獲取的Block的狀態(tài)屬性主要為:每個(gè)Dataflow Block包含的 Complet1n Task 屬性,該 Complet1n Task 屬性表不了該 DataflowBlock 的運(yùn)作狀態(tài)。Complet1n Task屬性至少包括“Running”運(yùn)行狀態(tài),“Complete”完成狀態(tài)。
[0031 ] 優(yōu)選的,在步驟S17根據(jù)各個(gè)級(jí)塊Block的狀態(tài)屬性,確定級(jí)塊Block的運(yùn)行狀態(tài)中,步驟包括:
[0032]步驟S171,遍歷處理通道中的各個(gè)級(jí)塊Block,確定處理通道中級(jí)塊Block的總數(shù)量。
[0033]步驟S173,根據(jù)處理通道中所包含的級(jí)塊Block的總數(shù)量和各個(gè)級(jí)塊的Block的狀態(tài)屬性,確定處理通道的工作狀態(tài)。
[0034]步驟S175,將各個(gè)級(jí)塊的Block的狀態(tài)屬性與處理通道的工作狀態(tài)進(jìn)行比對(duì),確定各個(gè)級(jí)塊Block的運(yùn)行狀態(tài)。
[0035]具體的,通過(guò)上述步驟S171至步驟S175,遍歷了處理通道中的各個(gè)級(jí)塊Block,確定了處理通道中級(jí)塊Block的總數(shù)量。并根據(jù)獲取的各個(gè)級(jí)塊Block的狀態(tài)屬性進(jìn)行分析并確定該處理通道的工作狀態(tài)。當(dāng)有級(jí)塊Block的工作狀態(tài)與級(jí)塊Block所處的處理通道的工作狀態(tài)不一致時(shí),則認(rèn)為這個(gè)級(jí)塊Block的運(yùn)行狀態(tài)不正常。例如,若有一個(gè)級(jí)塊Block的狀態(tài)為“Running”,其他所有級(jí)塊Block的狀態(tài)均為“Complete”,那么可以確定,當(dāng)前處理通道的工作狀態(tài)為“Complete”狀態(tài);而經(jīng)過(guò)比對(duì),可以迅速定位該狀態(tài)屬性與當(dāng)前處理通道的工作狀態(tài)不同的級(jí)塊Block。
[0036]優(yōu)選的,當(dāng)狀態(tài)屬性至少包括:運(yùn)行中和完成時(shí),其中,在步驟S173根據(jù)處理通道中所包含的級(jí)塊Block的總數(shù)量和各個(gè)級(jí)塊的Block的狀態(tài)屬性,確定處理通道的工作狀態(tài)中,步驟還包括:
[0037]步驟S1731,根據(jù)各個(gè)級(jí)塊Block的狀態(tài)屬性,確定狀態(tài)屬性為運(yùn)行中的級(jí)塊Block的運(yùn)行數(shù)量。
[0038]步驟S1733,根據(jù)級(jí)塊Block的運(yùn)行數(shù)量和處理通道中級(jí)塊Block的總數(shù)量,計(jì)算得出狀態(tài)屬性為運(yùn)行中的級(jí)塊Block的運(yùn)行比例。
[0039]步驟S1735,根據(jù)運(yùn)行比例,確定處理通道的工作狀態(tài)。
[0040]具體的,通過(guò)上述步驟S171至步驟S175,對(duì)處理通道中,狀態(tài)屬性為“運(yùn)行中”的級(jí)塊Block和狀態(tài)屬性為“完成”的級(jí)塊Block的數(shù)量進(jìn)行確認(rèn),當(dāng)狀態(tài)屬性為“運(yùn)行中”的級(jí)塊Block的比例大于狀態(tài)屬性為“完成”的級(jí)塊Block的情況下,判斷處理通道的工作狀態(tài)為“運(yùn)行中Running”。反之,處理通道的工作狀態(tài)為“完成Complete”。當(dāng)然,級(jí)塊Block的狀態(tài)屬性還可以包括其他狀態(tài)類(lèi)型,都可以通過(guò)上述判斷處理通道的工作狀態(tài)的方法進(jìn)行確定,此處不做贅述。
[0041]上述實(shí)例通過(guò)異步的監(jiān)視每個(gè)Dataflow Block的Complet1n Task屬性,進(jìn)而獲取處理通道中運(yùn)行中的Block及其總數(shù)量,以及完成時(shí)的Block及其總數(shù)量,有助于判斷當(dāng)前處理通道的工作狀態(tài),并將Block的屬性狀態(tài)與當(dāng)前處理通道的工作狀態(tài)進(jìn)行比對(duì),迅速找出故障Block。
[0042]優(yōu)選的,在步驟S13獲取預(yù)先設(shè)置的需要監(jiān)視的級(jí)塊Block的集合列表之前,方法還包括:
[0043]步驟S12,遍歷處理通道中的級(jí)塊Block,生成級(jí)塊Block的集合列表。
[0044]具體的,通過(guò)上述步驟S12,可以通過(guò)系統(tǒng)遍歷處理通道中的級(jí)塊Block的方法,自動(dòng)生成級(jí)塊Block的集合列表。從而免去了人為操作的麻煩。在程序設(shè)計(jì)的初期,可以通過(guò)該方法,來(lái)對(duì)處理通道進(jìn)行調(diào)試。
[0045]實(shí)施例2
[0046]本發(fā)明實(shí)施例還提供了一種基于TPL Dataflow的狀態(tài)監(jiān)控裝置,如圖2所示,該裝置可以包括:構(gòu)成單元21、第一獲取單元23、第二獲取單元25和處理單元27。
[0047]其中,構(gòu)成單元21,用于在.Net開(kāi)發(fā)環(huán)境中調(diào)用TPL Dataflow類(lèi)庫(kù),并通過(guò)TPLDataflow類(lèi)庫(kù)中的一個(gè)或多個(gè)級(jí)塊Block構(gòu)成用于處理數(shù)據(jù)的處理通道。
[0048]具體的,在上述構(gòu)成單元21中,TPL Dataflow類(lèi)庫(kù)中包含了各種功能不同的級(jí)塊Block,可以根據(jù)需求在處理通道中加入功能不同的級(jí)塊Block。
[0049]第一獲取單元23,用于獲取預(yù)先設(shè)置的需要監(jiān)視的級(jí)塊Block的集合列表。
[0050]具體的,在上述第一獲取單元23中,可以將需要監(jiān)視的級(jí)塊Block加入至集合列表當(dāng)中,把性能穩(wěn)定的級(jí)塊Block從集合列表中刪除,這樣,通過(guò)預(yù)先設(shè)置的級(jí)塊Block的集合列表,就可以方便的對(duì)需要進(jìn)行監(jiān)控的級(jí)塊Block進(jìn)行設(shè)置。
[0051 ] 第二獲取單元25,用于遍歷級(jí)塊Block的集合列表中的各個(gè)級(jí)塊Block,獲取處理通道中的各個(gè)級(jí)塊Block的狀態(tài)屬性。
[0052]具體的,在上述第二獲取單元25中,可以通過(guò)獲取每個(gè)Block的Complet1n Task屬性,可以清晰的判斷該Block的工作狀態(tài),是正在運(yùn)行,還是已經(jīng)運(yùn)行結(jié)束。Complet1nTask屬性有助于判斷Block的真實(shí)狀態(tài)。
[0053]處理單元27,用于根據(jù)各個(gè)級(jí)塊Block的狀態(tài)屬性,確定級(jí)塊Block的運(yùn)行狀態(tài)。
[0054]具體的,在上述處理單元27中,通過(guò)級(jí)塊Block的狀態(tài)屬性?xún)H用來(lái)表示當(dāng)前級(jí)塊Block的在實(shí)際運(yùn)行中所處于的狀態(tài),而級(jí)塊Block的運(yùn)行狀態(tài),則是相比于整個(gè)處理通道而言,著重描述的是該級(jí)塊Block的狀態(tài)對(duì)于真?zhèn)€數(shù)據(jù)處理通道的貢獻(xiàn),若該級(jí)塊Block能夠執(zhí)行且正確的執(zhí)行處理通道分配的任務(wù),則認(rèn)為該級(jí)塊Block的運(yùn)行狀態(tài)正常;若該級(jí)塊Block不能夠執(zhí)行處理通道分配的任務(wù),則該級(jí)塊Block的狀態(tài)屬性表現(xiàn)異常;若該級(jí)塊Block能夠執(zhí)行但錯(cuò)誤的執(zhí)行處理通道分配的任務(wù),雖然從狀態(tài)屬性上看該級(jí)塊Block并無(wú)異常,但此時(shí)仍認(rèn)為該級(jí)塊Block的運(yùn)行狀態(tài)非正常。
[0055]綜上可知,本發(fā)明解決了現(xiàn)有技術(shù)中每次手動(dòng)查看各個(gè)級(jí)塊Block的狀態(tài)屬性導(dǎo)致的操作繁瑣、效率低下的問(wèn)題。實(shí)現(xiàn)了準(zhǔn)確、直觀的判斷某一個(gè)級(jí)塊Block運(yùn)行狀態(tài),進(jìn)而能夠快速、精確的在數(shù)據(jù)處理通道中定位到出現(xiàn)故障的級(jí)塊Block的效果。
[0056]優(yōu)選的,上述第二獲取單元25包括:接收模塊251和接收模塊251。
[0057]其中,接收模塊251,用于接收觸發(fā)信號(hào),其中,觸發(fā)信號(hào)至少包括如下任意一種生成方式:通過(guò)用戶(hù)手動(dòng)點(diǎn)擊觸發(fā)控件生成觸發(fā)信號(hào)、通過(guò)預(yù)先設(shè)定的發(fā)送頻率生成觸發(fā)信號(hào)。
[0058]第一獲取模塊253,用于當(dāng)接收到觸發(fā)信號(hào)時(shí),根據(jù)級(jí)塊Block的集合列表獲取級(jí)塊Block的狀態(tài)屬性。
[0059]具體的,通過(guò)上述接收模塊251和接收模塊251,監(jiān)視器會(huì)異步運(yùn)行一個(gè)任務(wù),該任務(wù),每隔一定時(shí)間,就會(huì)根據(jù)集合列表,輪詢(xún)?cè)揃lock集合列表中的所有Block,獲取所有Block的狀態(tài)屬性并進(jìn)行打印。此實(shí)例中,獲取的Block的狀態(tài)屬性主要為:每個(gè)DataflowBlock 包含的 Complet1n Task 屬性,該 Complet1n Task 屬性表不了該 Dataf low Block的運(yùn)作狀態(tài)。Complet1n Task屬性至少包括“Running”運(yùn)行狀態(tài),“Complete”完成狀態(tài)。
[0060]優(yōu)選的,上述處理單元27包括:第一處理模塊271、第二處理模塊273和第三處理模塊275。
[0061]其中,第一處理模塊271,用于遍歷構(gòu)成單元201構(gòu)成的處理通道中的各個(gè)級(jí)塊Block,確定處理通道中級(jí)塊Block的總數(shù)量。
[0062]第二處理模塊273,用于根據(jù)處理通道中所包含的級(jí)塊Block的總數(shù)量和第一獲取模塊獲取的各個(gè)級(jí)塊Block的狀態(tài)屬性,確定處理通道的工作狀態(tài)。
[0063]第三處理模塊275,用于將各個(gè)級(jí)塊的Block的狀態(tài)屬性與處理通道的工作狀態(tài)進(jìn)行比對(duì),確定各個(gè)級(jí)塊Block的運(yùn)行狀態(tài)。
[0064]具體的,通過(guò)上述第一處理模塊271、第二處理模塊273和第三處理模塊275,遍歷了處理通道中的各個(gè)級(jí)塊Block,確定了處理通道中級(jí)塊Block的總數(shù)量。并根據(jù)獲取的各個(gè)級(jí)塊Block的狀態(tài)屬性進(jìn)行分析并確定該處理通道的工作狀態(tài)。當(dāng)有級(jí)塊Block的工作狀態(tài)與級(jí)塊Block所處的處理通道的工作狀態(tài)不一致時(shí),則認(rèn)為這個(gè)級(jí)塊Block的運(yùn)行狀態(tài)不正常。例如,若有一個(gè)級(jí)塊Block的狀態(tài)為“Running”,其他所有級(jí)塊Block的狀態(tài)均為“Complete”,那么可以確定,當(dāng)前處理通道的工作狀態(tài)為“Complete”狀態(tài);而經(jīng)過(guò)比對(duì),可以迅速定位該狀態(tài)屬性與當(dāng)前處理通道的工作狀態(tài)不同的級(jí)塊Block。
[0065]優(yōu)選的,當(dāng)狀態(tài)屬性至少包括:運(yùn)行中和完成時(shí),上述第二處理模塊273包括:第四處理模塊2731、計(jì)算模塊2733和第五處理模塊2735。
[0066]其中,第四處理模塊2731,用于根據(jù)各個(gè)級(jí)塊Block的狀態(tài)屬性,確定狀態(tài)屬性為運(yùn)行中的級(jí)塊Block的運(yùn)行數(shù)量。
[0067]計(jì)算模塊2733,用于根據(jù)級(jí)塊Block的運(yùn)行數(shù)量和處理通道中級(jí)塊Block的總數(shù)量,計(jì)算得出狀態(tài)屬性為運(yùn)行中的級(jí)塊Block的運(yùn)行比例。
[0068]第五處理模塊2735,用于根據(jù)運(yùn)行比例,確定處理通道的工作狀態(tài)。
[0069]具體的,通過(guò)上述步驟S171至步驟S175,對(duì)處理通道中,狀態(tài)屬性為“運(yùn)行中”的級(jí)塊Block和狀態(tài)屬性為“完成”的級(jí)塊Block的數(shù)量進(jìn)行確認(rèn),當(dāng)狀態(tài)屬性為“運(yùn)行中”的級(jí)塊Block的比例大于狀態(tài)屬性為“完成”的級(jí)塊Block的情況下,判斷處理通道的工作狀態(tài)為“運(yùn)行中Running”。反之,處理通道的工作狀態(tài)為“完成Complete”。當(dāng)然,級(jí)塊Block的狀態(tài)屬性還可以包括其他狀態(tài)類(lèi)型,都可以通過(guò)上述判斷處理通道的工作狀態(tài)的方法進(jìn)行確定,此處不做贅述。
[0070]上述實(shí)例通過(guò)異步的監(jiān)視每個(gè)Dataflow Block的Complet1n Task屬性,進(jìn)而獲取處理通道中運(yùn)行中的Block及其總數(shù)量,以及完成時(shí)的Block及其總數(shù)量,有助于判斷當(dāng)前處理通道的工作狀態(tài),并將Block的屬性狀態(tài)與當(dāng)前處理通道的工作狀態(tài)進(jìn)行比對(duì),迅速找出故障Block。
[0071]優(yōu)選的,上述裝置還包括:生成單元22。
[0072]其中,生成單元22,用于遍歷構(gòu)成單元構(gòu)成的處理通道中的級(jí)塊Block,生成級(jí)塊Block的集合列表。
[0073]具體的,通過(guò)上述生成單元22,可以通過(guò)系統(tǒng)遍歷處理通道中的級(jí)塊Block的方法,自動(dòng)生成級(jí)塊Block的集合列表。從而免去了人為操作的麻煩。在程序設(shè)計(jì)的初期,可以通過(guò)該方法,來(lái)對(duì)處理通道進(jìn)行調(diào)試。
[0074]需要說(shuō)明的是,對(duì)于前述的各方法實(shí)施例,為了簡(jiǎn)單描述,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù)本發(fā)明,某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說(shuō)明書(shū)中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作和模塊并不一定是本發(fā)明所必須的。
[0075]在上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒(méi)有詳述的部分,可以參見(jiàn)其他實(shí)施例的相關(guān)描述。
[0076]在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的裝置,可通過(guò)其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過(guò)一些接口,裝置或單元的間接耦合或通信連接,可以是電性或其它的形式。
[0077]所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部單元來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。
[0078]另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以?xún)蓚€(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
[0079]所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷(xiāo)售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可為個(gè)人計(jì)算機(jī)、移動(dòng)終端、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤(pán)、只讀存儲(chǔ)器(ROM,Read-OnlyMemory)、隨機(jī)存取存儲(chǔ)器(RAM,Random Access Memory)、移動(dòng)硬盤(pán)、磁碟或者光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)。
[0080]以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種基于了?1的狀態(tài)監(jiān)控方法,其特征在于,包括: 在』6七開(kāi)發(fā)環(huán)境中調(diào)用0社#10界類(lèi)庫(kù),并通過(guò)所述0社#10界類(lèi)庫(kù)中的一個(gè)或多個(gè)級(jí)塊8104構(gòu)成用于處理數(shù)據(jù)的處理通道; 獲取預(yù)先設(shè)置的需要監(jiān)視的所述級(jí)塊8104的集合列表; 遍歷所述級(jí)塊8104的集合列表中的各個(gè)級(jí)塊8104,獲取所述處理通道中的各個(gè)級(jí)塊8104的狀態(tài)屬性; 根據(jù)所述各個(gè)級(jí)塊8104的狀態(tài)屬性,確定所述級(jí)塊8104的運(yùn)行狀態(tài)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,遍歷所述級(jí)塊8104的集合列表中的各個(gè)級(jí)塊8104,獲取所述處理通道中的各個(gè)級(jí)塊8104的狀態(tài)屬性的步驟還包括: 接收觸發(fā)信號(hào),其中,所述觸發(fā)信號(hào)至少包括如下任意一種生成方式:通過(guò)用戶(hù)手動(dòng)點(diǎn)擊觸發(fā)控件生成所述觸發(fā)信號(hào)、通過(guò)預(yù)先設(shè)定的發(fā)送頻率生成所述觸發(fā)信號(hào); 當(dāng)接收到所述觸發(fā)信號(hào)時(shí),根據(jù)所述級(jí)塊8104的集合列表獲取所述級(jí)塊8104的狀態(tài)屬性。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,根據(jù)所述各個(gè)級(jí)塊8104的狀態(tài)屬性,確定所述級(jí)塊8104的運(yùn)行狀態(tài)的步驟還包括: 遍歷所述處理通道中的各個(gè)級(jí)塊8104,確定所述處理通道中級(jí)塊8104的總數(shù)量;根據(jù)所述處理通道中所包含的級(jí)塊8104的總數(shù)量和所述各個(gè)級(jí)塊的8104的狀態(tài)屬性,確定所述處理通道的工作狀態(tài); 將所述各個(gè)級(jí)塊的8104的狀態(tài)屬性與所述處理通道的所述工作狀態(tài)進(jìn)行比對(duì),確定所述各個(gè)級(jí)塊8104的運(yùn)行狀態(tài)。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,當(dāng)所述狀態(tài)屬性至少包括:運(yùn)行中和完成時(shí),其中,根據(jù)所述處理通道中所包含的級(jí)塊8104的總數(shù)量和所述各個(gè)級(jí)塊的8104的所述狀態(tài)屬性,確定所述處理通道的工作狀態(tài)的步驟還包括: 根據(jù)所述各個(gè)級(jí)塊8104的所述狀態(tài)屬性,確定所述狀態(tài)屬性為所述運(yùn)行中的級(jí)塊8100^的運(yùn)行數(shù)量; 根據(jù)所述級(jí)塊8104的運(yùn)行數(shù)量和所述處理通道中級(jí)塊8104的總數(shù)量,計(jì)算得出所述狀態(tài)屬性為運(yùn)行中的級(jí)塊8104的運(yùn)行比例; 根據(jù)所述運(yùn)行比例,確定所述處理通道的所述工作狀態(tài)。
5.根據(jù)權(quán)利要求1至4中任意一項(xiàng)所述的方法,其特征在于,在獲取預(yù)先設(shè)置的需要監(jiān)視的所述級(jí)塊8104的集合列表之前,所述方法還包括: 遍歷所述處理通道中的所述級(jí)塊8104,生成所述級(jí)塊8104的集合列表。
6.一種基于的狀態(tài)監(jiān)控裝置,其特征在于,包括: 構(gòu)成單元,用于在.他七開(kāi)發(fā)環(huán)境中調(diào)用了?I 0社21?10界類(lèi)庫(kù);并通過(guò)所述了?1 1)3,13,1:10^類(lèi)庫(kù)中的一個(gè)或多個(gè)級(jí)塊8104構(gòu)成用于處理數(shù)據(jù)的處理通道; 第一獲取單元,用于獲取預(yù)先設(shè)置的需要監(jiān)視的所述級(jí)塊8104的集合列表; 第二獲取單元,用于遍歷所述級(jí)塊8104的集合列表中的各個(gè)級(jí)塊8104,獲取所述處理通道中的各個(gè)級(jí)塊8104的狀態(tài)屬性; 處理單元,用于根據(jù)所述各個(gè)級(jí)塊8104的狀態(tài)屬性,確定所述級(jí)塊8104的運(yùn)行狀
。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,第二獲取單元還包括: 接收模塊,用于接收觸發(fā)信號(hào),其中,所述觸發(fā)信號(hào)至少包括如下任意一種生成方式:通過(guò)用戶(hù)手動(dòng)點(diǎn)擊觸發(fā)控件生成所述觸發(fā)信號(hào)、通過(guò)預(yù)先設(shè)定的發(fā)送頻率生成所述觸發(fā)信號(hào); 第一獲取模塊,用于當(dāng)接收到所述觸發(fā)信號(hào)時(shí),根據(jù)所述級(jí)塊Block的集合列表獲取所述級(jí)塊Block的狀態(tài)屬性。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,處理單元還包括: 第一處理模塊,用于遍歷所述構(gòu)成單元構(gòu)成的所述處理通道中的各個(gè)級(jí)塊Block,確定所述處理通道中級(jí)塊Block的總數(shù)量; 第二處理模塊,用于根據(jù)所述處理通道中所包含的級(jí)塊Block的總數(shù)量和所述第一獲取模塊獲取的所述各個(gè)級(jí)塊Block的狀態(tài)屬性,確定所述處理通道的工作狀態(tài); 第三處理模塊,用于將所述各個(gè)級(jí)塊的Block的狀態(tài)屬性與所述處理通道的所述工作狀態(tài)進(jìn)行比對(duì),確定所述各個(gè)級(jí)塊Block的運(yùn)行狀態(tài)。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,當(dāng)所述狀態(tài)屬性至少包括:運(yùn)行中和完成時(shí),其中,第二處理模塊還包括: 第四處理模塊,用于根據(jù)所述各個(gè)級(jí)塊Block的所述狀態(tài)屬性,確定所述狀態(tài)屬性為所述運(yùn)行中的級(jí)塊Block的運(yùn)行數(shù)量; 計(jì)算模塊,用于根據(jù)所述級(jí)塊Block的運(yùn)行數(shù)量和所述處理通道中級(jí)塊Block的總數(shù)量,計(jì)算得出所述狀態(tài)屬性為所述運(yùn)行中的級(jí)塊Block的運(yùn)行比例; 第五處理模塊,用于根據(jù)所述運(yùn)行比例,確定所述處理通道的所述工作狀態(tài)。
10.根據(jù)權(quán)利要求6至9中任意一項(xiàng)所述的裝置,其特征在于,所述裝置還包括: 生成單元,用于遍歷所述構(gòu)成單元構(gòu)成的所述處理通道中的所述級(jí)塊Block,生成所述級(jí)塊Block的集合列表。
【文檔編號(hào)】G06F11/30GK104484173SQ201410771292
【公開(kāi)日】2015年4月1日 申請(qǐng)日期:2014年12月12日 優(yōu)先權(quán)日:2014年12月12日
【發(fā)明者】?jī)?chǔ)雨知 申請(qǐng)人:北京國(guó)雙科技有限公司