<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • PHP構(gòu)建監(jiān)視服務(wù)的方法是什么

    時(shí)間:2024-09-25 07:03:56 PHP 我要投稿
    • 相關(guān)推薦

    PHP構(gòu)建監(jiān)視服務(wù)的方法是什么

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

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

      一個(gè)服務(wù)需要實(shí)現(xiàn)下列抽象類:

      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()重載方法提供對(duì)一個(gè)ServiceCheck對(duì)象的參數(shù)的只讀存取操作:

      · timeout-在引擎終止檢查之前,這一檢查能夠掛起多長(zhǎng)時(shí)間。

      · next_attempt-下次嘗試連接到服務(wù)器的時(shí)間。

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

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

      · frequency-每隔多長(zhǎng)時(shí)間檢查一次服務(wù)。

      · description-服務(wù)描述。

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

      敗的次數(shù)。

      · status_time-服務(wù)被檢查的最后時(shí)間。

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

      這個(gè)類還實(shí)現(xiàn)了觀察者模式,允許ServiceLogger類型的對(duì)象注冊(cè)自身,然后當(dāng)調(diào)用log_current_status()或log_service_event()時(shí)調(diào)用它。

      這里實(shí)現(xiàn)的關(guān)鍵函數(shù)是run(),它負(fù)責(zé)定義應(yīng)該怎樣執(zhí)行檢查。如果檢查成功,它應(yīng)該返回SUCCESS;否則返回FAILURE。

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

    如何使用PHP構(gòu)建一個(gè)高性能的彈幕后端服務(wù)01-22

    PHP錯(cuò)誤類型及屏蔽方法08-22

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

    十天學(xué)會(huì)php的方法09-23

    MongoDB的PHP驅(qū)動(dòng)方法與技巧大全09-08

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

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

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

    構(gòu)建生產(chǎn)結(jié)構(gòu)優(yōu)化系統(tǒng)的方法07-31

    構(gòu)建企業(yè)內(nèi)訓(xùn)體系的方法12-30

    主站蜘蛛池模板: 日韩国产精品无码一区二区三区| 精品久久无码中文字幕| 日韩精品真人荷官无码| 国产999精品久久久久久| 久久丫精品国产亚洲av不卡| 国产天天综合永久精品日| 国产精品ⅴ无码大片在线看| 免费视频成人国产精品网站| 久久青青草原国产精品免费| 久久夜色精品国产噜噜麻豆| 麻豆国内精品久久久久久| 中国精品videossex中国高清| 99精品国产高清一区二区麻豆| 亚洲精品无码成人AAA片| 精品久久久久久久久久中文字幕 | 久久夜色精品国产| 91麻豆精品一二三区在线| 国产成人精品免费视频大全麻豆| 午夜精品射精入后重之免费观看| 午夜精品久久久久久| 狠狠精品干练久久久无码中文字幕| 九九精品免视看国产成人| 97精品伊人久久大香线蕉app| 少妇人妻偷人精品免费视频| 亚洲A∨精品一区二区三区| 国产线视频精品免费观看视频| 桃花岛精品亚洲国产成人| 国产精品99久久久久久人| 国产精品偷伦视频观看免费| 日韩精品极品视频在线观看免费| 在线观看亚洲精品福利片 | 亚洲精品无码av天堂| 久久国产精品视频| 国精品无码A区一区二区| 国产成人综合精品一区| 一区二区三区日韩精品| 青青青青久久精品国产| 欧美精品一区二区三区在线| 欧美精品一区二区三区视频| 一本久久a久久精品综合夜夜| 88国产精品欧美一区二区三区|