亚洲一级电影在线观看,九九精品无码专区免费,亚洲AV无码资源在线观看 ,欧美国产高清

PHP構建監視服務的方法是什么

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

PHP構建監視服務的方法是什么

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

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

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

  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-服務的當前狀態:SUCCESS或FAILURE。

  · previous_status-當前狀態之前的狀態。

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

  · description-服務描述。

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

  敗的次數。

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

  · failure_time-如果狀態為FAILED,則它代表發生失敗的時間。

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

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

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

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

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

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

十天學會php的方法09-23

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

了解PHP環境搭建與配置的方法08-03

PHP開發環境安裝的方法有哪些10-27

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

構建生產結構優化系統的方法07-31

構建企業內訓體系的方法12-30

主站蜘蛛池模板: 国产精品久久久久久久久久久不卡 | 人与嘼交av免费| 国产精品福利一区二区久久| 国产精品亚洲精品日韩已方| 欧美日韩免费一区中文| 国产成人av男人的天堂| 日韩在线第三页| 伊人久久综合成人网| 特级西西人体444www高清大胆| 无码一区中文字幕| 国产成人av乱码在线观看| 国产成人毛片在线视频| 久久996re热这里只有精品无码| 777亚洲精品乱码久久久久久| 色欲av伊人久久大香线蕉影院| 欧洲成人在线观看| 亚洲五月综合缴情在线观看| 安义县| 亚洲 欧洲 无码 在线观看| 久久国产精品波多野结衣av| 无码中文字幕动漫精品| 鲁鲁夜夜天天综合视频| 任你躁国产自任一区二区三区| 在线a网站| 久久久亚洲欧洲日产国码农村| 人妻熟女αⅴ一区二区三区| 久久一本精品久久久ー99| 丰满岳乱妇久久久| 韩国三级l中文字幕无码| 欧美三级视频在线播放| 久久人妻少妇嫩草av无码专区| 91精品国产自产91精品资源| 国产熟妇疯狂4p交在线播放| 久久久久人妻一区视色| 激情无码人妻又粗又大中国人 | 阿勒泰市| 国产后式a一视频| 国产美女精品视频线免费播放软件 | 又色又爽又黄的视频网站| 亚洲精品一区久久久久一品av| 亚洲国产成人综合精品2020 |