中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

      PHP構建監(jiān)視服務的方法是什么

      時間:2024-09-25 07:03:56 PHP 我要投稿
      • 相關推薦

      PHP構建監(jiān)視服務的方法是什么

        【提要】本篇《PHP構建監(jiān)視服務的方法》特別為需要方法編程學習的朋友收集整理的,僅供參考。內容如下:

        PHP監(jiān)視服務記錄程序應該能夠支持任意的服務檢查(例如,HTTP和FTP服務)并且能夠以任意方式(通過電子郵件,輸出到一個日志文件,等等)記錄事件。你當然想讓它以一個守護程序方式運行;所以,你應該請求它輸出其完整的當前狀態(tài)。以下是小編為大家搜索整理的PHP構建監(jiān)視服務的方法,希望能給大家?guī)韼椭?

        一個服務需要實現下列抽象類:

        abstract class ServiceCheck {

        const FAILURE = 0;

        const SUCCESS = 1;

        protected $timeout = 30;

        protected $next_attempt;

        protected $current_status = ServiceCheck::SUCCESS;

        protected $previous_status = ServiceCheck::SUCCESS;

        protected $frequency = 30;

        protected $description;

        protected $consecutive_failures = 0;

        protected $status_time;

        protected $failure_time;

        protected $loggers = array();

        abstract public function __construct($params);

        public function __call($name, $args)

        {

        if(isset($this->$name)) {

        return $this->$name;

        }

        }

        public function set_next_attempt()

        {

        $this->next_attempt = time() + $this->frequency;

        }

        public abstract function run();

        public function post_run($status)

        {

        if($status !== $this->current_status) {

        $this->previous_status = $this->current_status;

        }

        if($status === self::FAILURE) {

        if( $this->current_status === self::FAILURE ) {

        $this->consecutive_failures++;

        }

        else {

        $this->failure_time = time();

        }

        }

        else {

        $this->consecutive_failures = 0;

        }

        $this->status_time = time();

        $this->current_status = $status;

        $this->log_service_event();

        }

        public function log_current_status()

        {

        foreach($this->loggers as $logger) {

        $logger->log_current_status($this);

        }

        }

        private function log_service_event()

        {

        foreach($this->loggers as $logger) {

        $logger->log_service_event($this);

        }

        }

        public function register_logger(ServiceLogger $logger)

        {

        $this->loggers[] = $logger;

        }

        }

        上面的__call()重載方法提供對一個ServiceCheck對象的參數的只讀存取操作:

        · timeout-在引擎終止檢查之前,這一檢查能夠掛起多長時間。

        · next_attempt-下次嘗試連接到服務器的時間。

        · current_status-服務的當前狀態(tài):SUCCESS或FAILURE。

        · previous_status-當前狀態(tài)之前的狀態(tài)。

        · frequency-每隔多長時間檢查一次服務。

        · description-服務描述。

        · consecutive_failures-自從上次成功以來,服務檢查連續(xù)失

        敗的次數。

        · status_time-服務被檢查的最后時間。

        · failure_time-如果狀態(tài)為FAILED,則它代表發(fā)生失敗的時間。

        這個類還實現了觀察者模式,允許ServiceLogger類型的對象注冊自身,然后當調用log_current_status()或log_service_event()時調用它。

        這里實現的關鍵函數是run(),它負責定義應該怎樣執(zhí)行檢查。如果檢查成功,它應該返回SUCCESS;否則返回FAILURE。

      【PHP構建監(jiān)視服務的方法是什么】相關文章:

      如何使用PHP構建一個高性能的彈幕后端服務01-22

      PHP錯誤類型及屏蔽方法08-22

      PHP處理密碼的幾種方法10-17

      十天學會php的方法09-23

      MongoDB的PHP驅動方法與技巧大全09-08

      了解PHP環(huán)境搭建與配置的方法08-03

      PHP開發(fā)環(huán)境安裝的方法有哪些10-27

      php在新浪云中使用imagick的方法07-14

      構建生產結構優(yōu)化系統(tǒng)的方法07-31

      構建企業(yè)內訓體系的方法12-30

      主站蜘蛛池模板: 漂亮的小少妇诱惑内射系列| 国产精品一区二区午夜久久| 少妇久久久被弄到高潮| av熟女一区二区久久| 99综合精品久久| 唐海县| 噜噜噜色97| 国产亚洲欧美日韩国产片| 亚洲A∨日韩Av最新在线| 亚洲精品一区二区三区四| 康马县| 亚洲综合色一区二区三区| 久久国产精品岛国搬运工| 伊人狠狠色j香婷婷综合| 高淳县| 常宁市| 兰州市| 96精品免费视频大全| 日韩精品极品在线观看视频| 激情综合五月天开心久久| 国产精品制服一区二区| 美女被射视频在线观看91| 广元市| 荔波县| 祁连县| 孟村| 高潮喷水无遮挡毛片视频| 久久91精品国产91久久麻豆| 国产精品三级av一区二区| 精品一区二区三区不卡| 午夜精品一区二区久久做老熟女| 亚洲av永久无码精品成人| 免费一级a毛片在线播出| 蜜桃av无码免费看永久| 济源市| 鹤峰县| 隆化县| 久久精品国产88久久综合 | 亚洲黄色一级高潮大片| 亚洲一区二区三区在线| 国产美女胸大一区二区三区|