PHP语言之用PHP构建一个简易监视引擎(三)
小标 2018-10-29 来源 : 阅读 1100 评论 0

摘要:本文主要向大家介绍了PHP语言之用PHP构建一个简易监视引擎(三),通过具体的内容向大家展示,希望对大家学习php语言有所帮助。

本文主要向大家介绍了PHP语言之用PHP构建一个简易监视引擎(三),通过具体的内容向大家展示,希望对大家学习php语言有所帮助。


五. 示例ServiceLogger进程



  下面是一个示例ServiceLogger进程。当一个服务停用时,它负责把一个电子邮件发送给一个待命人员:



class EmailMe_ServiceLogger implements ServiceLogger {

 public function log_service_event(ServiceCheck$service)

 {

  if($service->current_status ==ServiceCheck::FAILURE) {

   $message = "Problem with{$service->description()}rn";

   mail('oncall@example.com', 'Service Event',$message);

   if($service->consecutive_failures() > 5) {

    mail('oncall_backup@example.com', 'Service Event', $message);

   }

  }

 }

 public function log_current_status(ServiceCheck$service){

  return;

 }

}



  假如连续失败五次,那么该进程还把一个消息发送到一个备份地址。注重,它并没有实现一个有意义的log_current_status()方法。



  无论何时象如下这样改变一个服务的状态,你都应该实现一个写向PHP错误日志的ServiceLogger进程:



class ErrorLog_ServiceLogger implements ServiceLogger {

 public function log_service_event(ServiceCheck$service)

 {

  if($service->current_status() !==$service->previous_status()) {

   if($service->current_status() ===ServiceCheck::FAILURE) {

    $status = 'DOWN';

   }

   else {

    $status = 'UP';

   }

   error_log("{$service->description()} changed status to $status");

  }

 }

 public function log_current_status(ServiceCheck$service)

 {

  error_log("{$service->description()}: $status");

 }

}



  该log_current_status()方法意味着,假如进程发送一个SIGUSR1信号,它将把其完整的当前状态复制到你的PHP错误日志中。

  

  该引擎使用如下的一个配置文件:





 

  

   errorlog

   ErrorLog_ServiceLogger

  


  

   emailme

   EmailMe_ServiceLogger

  


 


 

  

   HTTP_ServiceCheck

   

    OmniTI HTTP Check

    //www.omniti.com

    30

    900

   


   

    errorlog

    emailme    

   

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言PHP频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程