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

        ?

        基于C#的進程守護程序的設計

        2020-06-11 14:28:18
        視聽 2020年3期
        關鍵詞:進程指令

        (廣西廣播電視無線傳播樞紐臺)

        一、背景

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

        二、方案設計

        (一)目標、涉眾分析

        1.目標

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

        2.涉眾

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

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

        本進程守護程序分為三個部分:

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

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

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

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

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

        1.概述

        進程守護程序主要有4個業(yè)務流程:

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

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

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

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

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

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

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

        監(jiān)視端定時收集軟件服務程序的運行狀態(tài)(正常,異常,未運行)上報給服務端。服務端收到狀態(tài)數(shù)據(jù)后,存入軟件服務程序運行狀態(tài)列表中??蛻舳藛映晒蠖〞r從服務端獲取軟件服務程序運行狀態(tài)列表數(shù)據(jù),然后在界面上顯示。

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

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

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

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

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

        (四)系統(tǒng)架構

        進程守護程序分為三個部分:

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

        2.監(jiān)視端:負責守護一個或多個軟件服務程序,部署在軟件服務程序所在的服務器上,采用C#語言編寫,運行于.Net Core3.1框架下,支持跨平臺運行。

        3.客戶端:是部署在值班平臺操作電腦上,C#語言編寫,因為值班操作電腦使用Windows系統(tǒng),故使用.Net FrameWork 4.7.2框架,提供WinForm友好可視界面,方便使用者直觀地查看各軟件服務程序的運行狀態(tài)和進行復位操作。

        圖3 系統(tǒng)架構圖

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

        (一)服務端的實現(xiàn)

        服務端基于.Net Core框架來創(chuàng)建,主要實現(xiàn)轉發(fā)功能和狀態(tài)存儲功能。服務端啟動后,創(chuàng)建一個Lsit泛型列表對象,一個消息隊列,一個BackgroundWorker線程對象,一個Socket對象。

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

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

        (二)客戶端的實現(xiàn)

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

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

        當使用者選擇某個軟件服務程序進行復位時,客戶端監(jiān)聽到給復位事件,就通過Socket對象發(fā)送復位指令給服務端;當收到服務端轉發(fā)來的復位結果后,就將復位結果通過Label對象顯示出來。

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

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

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

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

        四、結語

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

        猜你喜歡
        進程指令
        聽我指令:大催眠術
        債券市場對外開放的進程與展望
        中國外匯(2019年20期)2019-11-25 09:54:58
        ARINC661顯控指令快速驗證方法
        測控技術(2018年5期)2018-12-09 09:04:26
        LED照明產品歐盟ErP指令要求解讀
        電子測試(2018年18期)2018-11-14 02:30:34
        殺毒軟件中指令虛擬機的脆弱性分析
        電信科學(2016年10期)2016-11-23 05:11:56
        一種基于滑窗的余度指令判別算法
        坐標系旋轉指令數(shù)控編程應用
        機電信息(2014年27期)2014-02-27 15:53:56
        我國高等教育改革進程與反思
        Linux僵死進程的產生與避免
        男女平等進程中出現(xiàn)的新矛盾和新問題
        欧美在线成人午夜网站| 国产av一区二区三区无码野战| 午夜男女靠比视频免费| 亚洲性色av一区二区三区| 国产伦精品一区二区三区| 亚洲AV日韩AV无码A一区| 亚洲色图视频在线观看,| 免费黄网站永久地址进入| 国产白浆一区二区三区性色| 久久99精品国产麻豆宅宅| 久久天天爽夜夜摸| 国产成人永久在线播放| 亚洲日本人妻中文字幕| 漂亮人妻被强中文字幕乱码| 天堂丝袜美腿在线观看| 超碰97人人射妻| 性xxxx18免费观看视频| 日日摸日日碰夜夜爽无码| 亚洲欧美综合在线天堂| 欧美精品久久久久久久久| 国产精品专区一区二区av免费看| 色婷婷一区二区三区久久亚洲 | 人人鲁人人莫人人爱精品| 亚洲精品天堂成人片av在线播放| 无码国产亚洲日韩国精品视频一区二区三区 | 亚洲日韩中文字幕一区| 九色91精品国产网站| 亚洲av日韩av天堂久久不卡| 国产 高潮 抽搐 正在播放| 国产大学生粉嫩无套流白浆| 午夜一级在线| 美腿丝袜中文字幕在线观看| 久久无码潮喷a片无码高潮| 久久综合久久鬼色| 无码国产精品一区二区免| 国产精品久久国产精品久久| 友田真希中文字幕亚洲| 日本护士吞精囗交gif| 亚洲AV无码国产成人久久强迫| 亚洲精品国产二区在线观看| 精人妻无码一区二区三区|