亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于C#的進(jìn)程守護(hù)程序的設(shè)計(jì)

        2020-06-11 14:28:18
        視聽(tīng) 2020年3期
        關(guān)鍵詞:服務(wù)程序服務(wù)端列表

        (廣西廣播電視無(wú)線(xiàn)傳播樞紐臺(tái))

        一、背景

        在實(shí)際工作中,運(yùn)行在服務(wù)器上的各類(lèi)軟件服務(wù)程序,偶爾出現(xiàn)異常后退出或者不能正常工作,這樣該軟件服務(wù)程序就無(wú)法提供準(zhǔn)確的數(shù)據(jù)和執(zhí)行各項(xiàng)指令,給使用者造成了困擾。為了解決這個(gè)問(wèn)題,本文提出了一種基于C#的進(jìn)程守護(hù)程序解決方案,在服務(wù)器上運(yùn)行一個(gè)守護(hù)程序,實(shí)時(shí)監(jiān)視軟件服務(wù)程序的進(jìn)程或心跳包,當(dāng)軟件服務(wù)程序出現(xiàn)異常退出或者進(jìn)入假死狀態(tài)不能正常工作時(shí),進(jìn)程守護(hù)程序的監(jiān)視端可自動(dòng)對(duì)出現(xiàn)故障的軟件服務(wù)程序進(jìn)行復(fù)位重啟,亦可人工在進(jìn)程守護(hù)程序的客戶(hù)端界面上對(duì)出現(xiàn)故障的軟件服務(wù)程序進(jìn)行復(fù)位重啟,使軟件服務(wù)程序恢復(fù)正常運(yùn)行。

        二、方案設(shè)計(jì)

        (一)目標(biāo)、涉眾分析

        1.目標(biāo)

        使用者能方便地查看所監(jiān)視的各軟件服務(wù)程序的當(dāng)前運(yùn)行狀態(tài),并可以手動(dòng)復(fù)位重啟程序。

        2.涉眾

        主要涉眾是各軟件服務(wù)程序的使用者。

        (二)系統(tǒng)概念分析

        本進(jìn)程守護(hù)程序分為三個(gè)部分:

        1.守護(hù)系統(tǒng)服務(wù)端(下稱(chēng)服務(wù)端):負(fù)責(zé)將接收到的客戶(hù)端復(fù)位指令轉(zhuǎn)發(fā)給監(jiān)視端,又將監(jiān)視端復(fù)位軟件服務(wù)程序的結(jié)果、監(jiān)視端的通信狀態(tài)和軟件服務(wù)程序的運(yùn)行狀態(tài)轉(zhuǎn)發(fā)給客戶(hù)端。

        2.守護(hù)系統(tǒng)監(jiān)視端(下稱(chēng)監(jiān)視端):該端部署在各軟件服務(wù)程序所在的服務(wù)器上,接收到復(fù)位指令后,按照指令復(fù)位指定軟件服務(wù)程序并將復(fù)位結(jié)果發(fā)送給服務(wù)端;定時(shí)將軟件服務(wù)程序的運(yùn)行狀態(tài)發(fā)送給服務(wù)端。軟件服務(wù)程序運(yùn)行在不同的服務(wù)器上,所以監(jiān)視端也將部署在多個(gè)服務(wù)器上。

        3.守護(hù)系統(tǒng)客戶(hù)端(下稱(chēng)客戶(hù)端):負(fù)責(zé)將復(fù)位指令發(fā)送給服務(wù)端,并顯示復(fù)位的結(jié)果;顯示軟件服務(wù)程序的運(yùn)行狀態(tài)??蛻?hù)端部署在值班平臺(tái)的多個(gè)值班電腦上。

        圖1 系統(tǒng)業(yè)務(wù)概念分析圖

        (三)業(yè)務(wù)流程分析

        1.概述

        進(jìn)程守護(hù)程序主要有4個(gè)業(yè)務(wù)流程:

        (1)復(fù)位軟件服務(wù)程序;

        (2)顯示軟件服務(wù)程序的運(yùn)行狀態(tài)(正常,異常,未運(yùn)行);

        (3)顯示監(jiān)視端的通信狀態(tài);

        (4)顯示服務(wù)端的通信狀態(tài)。

        2.復(fù)位軟件服務(wù)程序的業(yè)務(wù)流程

        使用者在客戶(hù)端上點(diǎn)擊復(fù)位一個(gè)或多個(gè)軟件服務(wù)程序,客戶(hù)端接收到復(fù)位事件后,立即發(fā)送復(fù)位指令給服務(wù)端。服務(wù)端收到指令后,檢測(cè)接受指令的一個(gè)或多個(gè)監(jiān)視端是否在線(xiàn),如不在線(xiàn),則將“監(jiān)視端不在線(xiàn),復(fù)位失敗”的結(jié)果返回客戶(hù)端,如果在線(xiàn),則發(fā)送復(fù)位指令給監(jiān)視端。監(jiān)視端收到復(fù)位指令后,立即復(fù)位指定的軟件服務(wù)程序,然后將復(fù)位結(jié)果返回給服務(wù)端。服務(wù)端也立即將復(fù)位結(jié)果返回給客戶(hù)端??蛻?hù)端接收復(fù)位結(jié)果的指令后,顯示在界面上。

        3.顯示軟件服務(wù)程序的運(yùn)行狀態(tài)的業(yè)務(wù)流程

        監(jiān)視端定時(shí)收集軟件服務(wù)程序的運(yùn)行狀態(tài)(正常,異常,未運(yùn)行)上報(bào)給服務(wù)端。服務(wù)端收到狀態(tài)數(shù)據(jù)后,存入軟件服務(wù)程序運(yùn)行狀態(tài)列表中。客戶(hù)端啟動(dòng)成功后定時(shí)從服務(wù)端獲取軟件服務(wù)程序運(yùn)行狀態(tài)列表數(shù)據(jù),然后在界面上顯示。

        4.顯示監(jiān)視端的通信狀態(tài)

        監(jiān)視端定時(shí)發(fā)送心跳包給服務(wù)端,服務(wù)端收到心跳包后存入監(jiān)視端通信狀態(tài)列表,客戶(hù)端啟動(dòng)成功后定時(shí)從服務(wù)端獲取監(jiān)視端通信狀態(tài)列表數(shù)據(jù),然后在界面上顯示。

        5.顯示服務(wù)端的通信狀態(tài)

        客戶(hù)端啟動(dòng)成功后定時(shí)發(fā)送心跳包給服務(wù)端,并將通信狀態(tài)顯示在界面上。

        圖2 系統(tǒng)總用例圖

        (四)系統(tǒng)架構(gòu)

        進(jìn)程守護(hù)程序分為三個(gè)部分:

        1.服務(wù)端:是一個(gè)中間件,負(fù)責(zé)轉(zhuǎn)發(fā)客戶(hù)端和監(jiān)視端的數(shù)據(jù)信息,采用C#語(yǔ)言編寫(xiě),運(yùn)行于.Net Core3.1框架下,支持跨平臺(tái)運(yùn)行,服務(wù)端使用UDP協(xié)議與客戶(hù)端、監(jiān)視端進(jìn)行通信。

        2.監(jiān)視端:負(fù)責(zé)守護(hù)一個(gè)或多個(gè)軟件服務(wù)程序,部署在軟件服務(wù)程序所在的服務(wù)器上,采用C#語(yǔ)言編寫(xiě),運(yùn)行于.Net Core3.1框架下,支持跨平臺(tái)運(yùn)行。

        3.客戶(hù)端:是部署在值班平臺(tái)操作電腦上,C#語(yǔ)言編寫(xiě),因?yàn)橹蛋嗖僮麟娔X使用Windows系統(tǒng),故使用.Net FrameWork 4.7.2框架,提供WinForm友好可視界面,方便使用者直觀地查看各軟件服務(wù)程序的運(yùn)行狀態(tài)和進(jìn)行復(fù)位操作。

        圖3 系統(tǒng)架構(gòu)圖

        三、系統(tǒng)實(shí)現(xiàn)

        (一)服務(wù)端的實(shí)現(xiàn)

        服務(wù)端基于.Net Core框架來(lái)創(chuàng)建,主要實(shí)現(xiàn)轉(zhuǎn)發(fā)功能和狀態(tài)存儲(chǔ)功能。服務(wù)端啟動(dòng)后,創(chuàng)建一個(gè)Lsit泛型列表對(duì)象,一個(gè)消息隊(duì)列,一個(gè)BackgroundWorker線(xiàn)程對(duì)象,一個(gè)Socket對(duì)象。

        Socket對(duì)象實(shí)例化后,綁定一個(gè)偵聽(tīng)端口,實(shí)時(shí)接收客戶(hù)端和監(jiān)視端發(fā)送過(guò)來(lái)的UDP包,并對(duì)接收到的數(shù)據(jù)包進(jìn)行解析,如果是客戶(hù)端發(fā)來(lái)的復(fù)位的指令,就將復(fù)位指令轉(zhuǎn)發(fā)給相應(yīng)的監(jiān)視端;如果是監(jiān)視端返回的復(fù)位結(jié)果,則將結(jié)果轉(zhuǎn)發(fā)給客戶(hù)端;如果是監(jiān)視端發(fā)來(lái)其自身和所監(jiān)視的軟件服務(wù)程序的狀態(tài)數(shù)據(jù),就將該狀態(tài)數(shù)據(jù)推入消息隊(duì)列。

        BackgroundWorker線(xiàn)程對(duì)象實(shí)例化后,定時(shí)檢查消息隊(duì)列是否存在新消息,如果有新?tīng)顟B(tài)數(shù)據(jù),則進(jìn)行解析處理,并將結(jié)果存入Lsit泛型列表對(duì)象中;然后又定時(shí)將這些關(guān)于監(jiān)視端和軟件服務(wù)程序的狀態(tài)列表數(shù)據(jù),通過(guò)Socket對(duì)象發(fā)送給客戶(hù)端。

        (二)客戶(hù)端的實(shí)現(xiàn)

        客戶(hù)端基于.Net FrameWork框架來(lái)實(shí)現(xiàn),主要是實(shí)現(xiàn)各監(jiān)視端和軟件服務(wù)程序狀態(tài)的實(shí)時(shí)顯示和進(jìn)行復(fù)位操作指令的下發(fā)以及復(fù)位結(jié)果的顯示。

        客戶(hù)端初始化時(shí),創(chuàng)建一個(gè)Socket對(duì)象,并向服務(wù)端發(fā)送獲取監(jiān)視端和軟件服務(wù)程序狀態(tài)的請(qǐng)求,收到返回結(jié)果后,根據(jù)數(shù)據(jù)列表,動(dòng)態(tài)創(chuàng)建Label對(duì)象和Button對(duì)象,將監(jiān)視端和軟件服務(wù)程序狀態(tài)顯示在UI界面上。此后就定時(shí)接收服務(wù)端推送過(guò)來(lái)的實(shí)時(shí)狀態(tài)列表數(shù)據(jù),并更新顯示在UI界面上。

        當(dāng)使用者選擇某個(gè)軟件服務(wù)程序進(jìn)行復(fù)位時(shí),客戶(hù)端監(jiān)聽(tīng)到給復(fù)位事件,就通過(guò)Socket對(duì)象發(fā)送復(fù)位指令給服務(wù)端;當(dāng)收到服務(wù)端轉(zhuǎn)發(fā)來(lái)的復(fù)位結(jié)果后,就將復(fù)位結(jié)果通過(guò)Label對(duì)象顯示出來(lái)。

        (三)監(jiān)視端的實(shí)現(xiàn)

        監(jiān)視端基于.Net Core框架來(lái)創(chuàng)建,主要實(shí)現(xiàn)自動(dòng)或根據(jù)指令復(fù)位軟件服務(wù)程序,和定時(shí)監(jiān)測(cè)軟件服務(wù)程序的進(jìn)程和心跳包并上報(bào)的功能。

        監(jiān)視端初始化時(shí),創(chuàng)建一個(gè)Socket對(duì)象,一個(gè)List泛型列表,一個(gè)BackgroundWorker線(xiàn)程對(duì)象。Socket對(duì)象實(shí)時(shí)監(jiān)聽(tīng)服務(wù)端轉(zhuǎn)發(fā)過(guò)來(lái)的復(fù)位指令,根據(jù)指令內(nèi)容,找到相應(yīng)的軟件服務(wù)程序的進(jìn)程信息,然后Kill掉該進(jìn)程,再發(fā)送啟動(dòng)命令啟動(dòng)軟件服務(wù)程序,最后將復(fù)位結(jié)果返回給服務(wù)端。同時(shí),Socket對(duì)象實(shí)時(shí)監(jiān)聽(tīng)軟件服務(wù)程序發(fā)送過(guò)來(lái)的心跳包,并將心跳包存入List泛型列表中。

        BackgroundWorker線(xiàn)程對(duì)象定時(shí)監(jiān)測(cè)軟件服務(wù)程序的進(jìn)程是否還存在,心跳包時(shí)間是否已經(jīng)超時(shí),如果進(jìn)程不存在或者心跳包已超時(shí),則發(fā)送啟動(dòng)命令啟動(dòng)軟件服務(wù)程序。同時(shí)定時(shí)將軟件服務(wù)程序狀態(tài)上報(bào)給服務(wù)端。

        四、結(jié)語(yǔ)

        本進(jìn)程守護(hù)程序使用了.Net Core和.Net Framework兩個(gè)框架,C#語(yǔ)言編寫(xiě),采用UDP協(xié)議進(jìn)行通信。啟用本程序后,在一定程度上能改善軟件服務(wù)程序出現(xiàn)異常后的恢復(fù)速度,讓使用者能對(duì)各軟件服務(wù)程序的實(shí)時(shí)運(yùn)行狀態(tài)了如指掌。

        猜你喜歡
        服務(wù)程序服務(wù)端列表
        巧用列表來(lái)推理
        基于移動(dòng)終端的人事信息員工自助服務(wù)系統(tǒng)設(shè)計(jì)
        SylixOS系統(tǒng)的中斷嵌套機(jī)制研究與實(shí)現(xiàn)
        學(xué)習(xí)運(yùn)用列表法
        擴(kuò)列吧
        云存儲(chǔ)中基于相似性的客戶(hù)-服務(wù)端雙端數(shù)據(jù)去重方法
        新時(shí)期《移動(dòng)Web服務(wù)端開(kāi)發(fā)》課程教學(xué)改革的研究
        在Windows Server 2008上創(chuàng)建應(yīng)用
        水利工程施工監(jiān)理服務(wù)程序及質(zhì)量控制
        不含3-圈的1-平面圖的列表邊染色與列表全染色
        免费在线观看视频专区| 亚洲av无码不卡| 人妻无码一区二区| 亚洲精品国产熟女久久| 成人国产精品三上悠亚久久| 免费a级毛片无码a∨中文字幕下载 | 亚洲欧美国产日韩制服bt| 国产精品女同学| 亚洲av第一区国产精品| 久久天天躁狠狠躁夜夜avapp| 婷婷综合久久中文字幕蜜桃三电影| 国产韩国精品一区二区三区| av中文字幕在线直播| 亚洲精品白浆高清久久久久久| 亚洲精品国产v片在线观看| 无码伊人久久大蕉中文无码 | 亚洲女同同性少妇熟女| 给我看免费播放的视频在线观看| 成 人 免费 在线电影| 国产精品无需播放器| 国产亚洲一区二区三区三州| 男女射黄视频网站在线免费观看| 性欧美videofree高清精品| 久久se精品一区精品二区国产| 久久精品日韩免费视频| 天天综合网网欲色| 最近中文字幕mv在线资源| 日韩亚洲欧美精品| 91熟女av一区二区在线| 真人做人试看60分钟免费视频| 看黄网站在线| 超短裙老师在线观看一区| 人人妻人人澡人人爽精品日本| 亚洲av日韩av高潮潮喷无码 | 亚洲综合偷拍一区二区| 国产一二三四2021精字窝| 精品熟女日韩中文十区| 久久国产亚洲中文字幕| 蜜桃视频国产一区二区| 久久久久女人精品毛片| 一本色道精品亚洲国产一区|