欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種軟件開發(fā)中主進(jìn)程異常檢測方法與流程

文檔序號(hào):12719186閱讀:426來源:國知局
一種軟件開發(fā)中主進(jìn)程異常檢測方法與流程

本發(fā)明屬于計(jì)算機(jī)數(shù)據(jù)處理技術(shù)領(lǐng)域,特別涉及一種軟件開發(fā)中進(jìn)程異常的檢測方法。



背景技術(shù):

軟件開發(fā)中經(jīng)常需要維持某個(gè)進(jìn)程(比如服務(wù)器進(jìn)程)長期穩(wěn)定地工作,但是不可避免地經(jīng)常會(huì)出現(xiàn)進(jìn)程異常退出的問題。為了解決這個(gè)問題,目前軟件開發(fā)時(shí)采用的方法是利用一個(gè)守護(hù)進(jìn)程一直看護(hù)主進(jìn)程,如圖1所示,守護(hù)進(jìn)程定時(shí)掃描主進(jìn)程是否存在,如果主進(jìn)程不存在,就重新啟動(dòng)主進(jìn)程。

但是,目前的看護(hù)方式存在著不足,如果主進(jìn)程不是退出,而是線程掛起(程序死掉)或運(yùn)行異常,守護(hù)進(jìn)程認(rèn)為程序沒有退出,誤以為還在正常工作,而實(shí)際上主進(jìn)程已經(jīng)異常出錯(cuò),也即,現(xiàn)有的主進(jìn)程看護(hù)方式無法解決這類實(shí)際存在的問題,有待改進(jìn)。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明的目的,在于提供一種軟件開發(fā)中主進(jìn)程異常檢測方法,其不但可以保證主進(jìn)程退出時(shí)立即重啟主進(jìn)程,更可以解決主進(jìn)程的線程掛起或運(yùn)行異常導(dǎo)致無法正常工作的問題。

為了達(dá)成上述目的,本發(fā)明的解決方案是:

一種軟件開發(fā)中主進(jìn)程異常檢測方法,包括如下步驟:

步驟1,主進(jìn)程在啟動(dòng)時(shí),同時(shí)啟動(dòng)守護(hù)進(jìn)程守護(hù)其運(yùn)行,并創(chuàng)建一個(gè)唯一的全局互斥體;

步驟2,守護(hù)進(jìn)程定時(shí)檢測主進(jìn)程的全局互斥體是否存在,若存在則轉(zhuǎn)步驟3,若不存在則守護(hù)進(jìn)程重新啟動(dòng)主進(jìn)程;

步驟3,守護(hù)進(jìn)程定時(shí)向主進(jìn)程發(fā)送消息,詢問主進(jìn)程的工作狀態(tài),守護(hù)進(jìn)程向主進(jìn)程發(fā)送消息后,判斷在設(shè)定時(shí)間內(nèi)是否收到主進(jìn)程應(yīng)答,若收到主進(jìn)程工作狀態(tài)正常的應(yīng)答,表示主進(jìn)程工作狀態(tài)正常,守護(hù)進(jìn)程繼續(xù)保持定時(shí)詢問;若在設(shè)定時(shí)間內(nèi)未收到主進(jìn)程應(yīng)答,繼續(xù)定時(shí)向主進(jìn)程發(fā)送詢問消息,如果持續(xù)n次都未收到主進(jìn)程應(yīng)答,n為自然數(shù),或收到主進(jìn)程工作狀態(tài)異常的應(yīng)答,則認(rèn)為主進(jìn)程當(dāng)前工作狀態(tài)異常,守護(hù)進(jìn)程殺掉主進(jìn)程,并重新啟動(dòng)主進(jìn)程。

上述方法中,還設(shè)定主進(jìn)程在合法退出前,先殺掉守護(hù)進(jìn)程。

上述步驟1中,主進(jìn)程通過用戶手動(dòng)啟動(dòng)或開機(jī)自動(dòng)啟動(dòng)。

上述步驟2中,守護(hù)進(jìn)程檢測主進(jìn)程的全局互斥體是否存在的方法是,守護(hù)進(jìn)程與主進(jìn)程約定一個(gè)全局唯一的互斥體名稱,守護(hù)進(jìn)程驗(yàn)證與互斥體名稱對(duì)應(yīng)的全局互斥體是否存在,若存在則判定主進(jìn)程存在。

上述步驟2中,檢測周期為一秒。

上述步驟3中,主進(jìn)程開辟專用線程與守護(hù)進(jìn)程進(jìn)行通信。

上述步驟3中,守護(hù)進(jìn)程發(fā)送消息的發(fā)送間隔設(shè)定為一秒。

采用上述方案后,本發(fā)明中的守護(hù)進(jìn)程不但監(jiān)控主進(jìn)程是否退出,還定時(shí)與主進(jìn)程保持通訊狀態(tài)。即守護(hù)進(jìn)程定時(shí)向主進(jìn)程發(fā)消息,詢問主進(jìn)程工作狀態(tài)是否正常,主進(jìn)程收到消息時(shí)應(yīng)答守護(hù)進(jìn)程,告知主進(jìn)程當(dāng)前工作狀態(tài)。如果守護(hù)進(jìn)程沒收到主進(jìn)程的應(yīng)答消息,或主進(jìn)程告訴守護(hù)進(jìn)程自己當(dāng)前工作狀態(tài)異常,守護(hù)進(jìn)程殺掉主進(jìn)程并重啟主進(jìn)程,讓主進(jìn)程恢復(fù)正常工作。

附圖說明

圖1是現(xiàn)有進(jìn)程看護(hù)方式的流程圖;

圖2是本發(fā)明的流程圖。

具體實(shí)施方式

以下將結(jié)合附圖,對(duì)本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)說明。

如圖2所示,本發(fā)明提供一種軟件開發(fā)中主進(jìn)程異常檢測方法,包括如下步驟:

步驟1,用戶手動(dòng)啟動(dòng)主進(jìn)程,或設(shè)置開機(jī)自動(dòng)啟動(dòng)主進(jìn)程時(shí),主進(jìn)程同時(shí)啟動(dòng)守護(hù)進(jìn)程守護(hù)其運(yùn)行,并創(chuàng)建一個(gè)唯一的全局互斥體;所謂的互斥體就是主進(jìn)程創(chuàng)建的一個(gè)全局標(biāo)識(shí),互斥體隨著主進(jìn)程創(chuàng)建而創(chuàng)建,隨著主進(jìn)程關(guān)閉而關(guān)閉,并且每個(gè)互斥體都有一個(gè)唯一的名稱,所以其他進(jìn)程可以通過檢查這個(gè)主進(jìn)程對(duì)應(yīng)的互斥體是否存在,來確定主進(jìn)程是否有實(shí)例在運(yùn)行;

步驟2,守護(hù)進(jìn)程定時(shí)檢測全局互斥體是否存在,從而確定主進(jìn)程是否存在,在本實(shí)施例中,檢測方法是:守護(hù)進(jìn)程與主進(jìn)程約定一個(gè)全局唯一的互斥體名稱,因?yàn)榛コ怏w隨主進(jìn)程創(chuàng)建而創(chuàng)建,隨主進(jìn)程關(guān)閉而關(guān)閉,所以守護(hù)進(jìn)程只要驗(yàn)證跟互斥體名稱對(duì)應(yīng)的全局互斥體是否存在,就能確定主進(jìn)程實(shí)例是否存在,并設(shè)定檢測周期為一秒;若守護(hù)進(jìn)程判斷全局互斥體存在,則轉(zhuǎn)步驟3,若守護(hù)進(jìn)程判斷全局互斥體不存在,表示主進(jìn)程已退出,則守護(hù)進(jìn)程重新啟動(dòng)主進(jìn)程;為了避免主進(jìn)程在執(zhí)行完任務(wù)需要正常退出時(shí),被守護(hù)進(jìn)程看住導(dǎo)致無法正常退出,設(shè)定主進(jìn)程在合法退出前,需要先殺掉守護(hù)進(jìn)程;

步驟3,守護(hù)進(jìn)程定時(shí)向主進(jìn)程發(fā)送消息,詢問主進(jìn)程的工作狀態(tài),在本實(shí)施例中,設(shè)定發(fā)送間隔為一秒;主進(jìn)程專門開辟一個(gè)線程用于與守護(hù)進(jìn)程通信,以免因?yàn)樘幚砥渌麡I(yè)務(wù)導(dǎo)致與守護(hù)進(jìn)程通信不及時(shí)。守護(hù)進(jìn)程向主進(jìn)程發(fā)送消息后,判斷在設(shè)定時(shí)間內(nèi)(一般設(shè)定為一秒)是否收到主進(jìn)程應(yīng)答,若收到主進(jìn)程工作狀態(tài)正常的應(yīng)答,表示主進(jìn)程工作狀態(tài)正常,守護(hù)進(jìn)程繼續(xù)保持定時(shí)詢問;若在設(shè)定時(shí)間內(nèi)未收到主進(jìn)程應(yīng)答,繼續(xù)定時(shí)向主進(jìn)程發(fā)送詢問消息,如果持續(xù)三次都未收到主進(jìn)程應(yīng)答,或收到主進(jìn)程工作狀態(tài)異常的應(yīng)答,則認(rèn)為主進(jìn)程當(dāng)前工作狀態(tài)異常,守護(hù)進(jìn)程殺掉主進(jìn)程,并重新啟動(dòng)主進(jìn)程。

綜合上述,本發(fā)明一種軟件開發(fā)中主進(jìn)程異常檢測方法,針對(duì)目前軟件開發(fā)中主進(jìn)程存在,但主進(jìn)程的線程掛起(程序死掉)或程序異常導(dǎo)致無法正常工作的情況,在守護(hù)進(jìn)程與主進(jìn)程之間建立通訊,以確定主進(jìn)程是否處于正常工作狀態(tài)。若主進(jìn)程工作狀態(tài)異常,守護(hù)進(jìn)程殺死主進(jìn)程并重新啟動(dòng)主進(jìn)程,從而提高進(jìn)程的可用性,提高進(jìn)程工作效率。

以上實(shí)施例僅為說明本發(fā)明的技術(shù)思想,不能以此限定本發(fā)明的保護(hù)范圍,凡是按照本發(fā)明提出的技術(shù)思想,在技術(shù)方案基礎(chǔ)上所做的任何改動(dòng),均落入本發(fā)明保護(hù)范圍之內(nèi)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
康保县| 龙里县| 新绛县| 乌兰察布市| 响水县| 敖汉旗| 宁武县| 西畴县| 阿拉善右旗| 肥东县| 察雅县| 天柱县| 东乡| 左权县| 忻州市| 通州市| 资阳市| 镇赉县| 辽源市| 沾化县| 布尔津县| 竹北市| 大方县| 会理县| 城口县| 晋中市| 峨眉山市| 镇远县| 五常市| 木里| 新化县| 清徐县| 宜城市| 揭东县| 贞丰县| 阳高县| 出国| 耒阳市| 鄂托克前旗| 临沂市| 崇明县|