教程集 www.jiaochengji.com
教程集 >  脚本编程  >  php  >  正文 用PHP构建一个简易监视引擎(三)

用PHP构建一个简易监视引擎(三)

发布时间:2016-10-30   编辑:jiaochengji.com
教程集为您提供用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错误日志中。
  
  该引擎使用如下的一个配置文件:

<config>
 <loggers>
  <logger>
   <id>errorlog</id>
   <class>ErrorLog_ServiceLogger</class>
  </logger>
  <logger>
   <id>emailme</id>
   <class>EmailMe_ServiceLogger</class>
  </logger>
 </loggers>
 <services>
  <service>
   <class>HTTP_ServiceCheck</class>
   <params>
    <description>OmniTI HTTP Check</description>
    <url>http://www.omniti.com</url>
    <timeout>30</timeout>
    <frequency>900</frequency>
   </params>
   <loggers>
    <logger>errorlog</logger>
    <logger>emailme</logger>

您可能感兴趣的文章:
用PHP构建一个简易监视引擎(三)
搜索引擎优化之网页篇
常见Google排名优化SPAM技术
常见的Google排名优化SPAM技术
用 Smarty 分离 PHP 应用程序中的形式与功能
网站需要SEO,基本的SEO建站要点
php模板引擎有哪些
怎么让百度快速收录新网站
phpcms用什么开发的
php面向对象框架有哪些

[关闭]
~ ~