Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * (C) 2007-2012 Alibaba Group Holding Limited.
   * 
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   * 
   *      http://www.apache.org/licenses/LICENSE-2.0
   * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  * Authors:
  *   wuhua <wq163@163.com> , boyan <killme2008@gmail.com>
  */
 package com.taobao.metamorphosis.tools.monitor.system;
 
 import java.util.List;
 
����cpu,�ڴ�,���̵�ϵͳ��صĹ�ͬ�����

Author(s):
�޻�
Since:
2011-9-28 ����2:39:43
 
 
 public abstract class SystemProber extends AbstractProber {
 
     protected ProcessResultHook processResultHook = new ProcessResultHook() {
     };
 
     private final List<ScheduledFuture<?>> futures = new ArrayList<ScheduledFuture<?>>();
 
 
     public SystemProber(CoreManager coreManager) {
         super(coreManager);
     }
 
 
     public void init() throws InitException {
 
     }
 
 
     @Override
     protected void doProb() throws InterruptedException {
         for (final MsgSender sender : this.getSenders()) {
             this..add(this.getProberExecutor().scheduleAtFixedRate(new ProbTask() {
 
                 @Override
                 protected void handleException(Throwable e) {
                     SystemProber.this..error("unexpected error in offset prob thread."e);
                 }
 
 
                 @Override
                 protected void doExecute() throws Exception {
                     MonitorResult monitorResult = SystemProber.this.getMonitorResult(sender);
                     SystemProber.this..debug(SystemProber.this.getClass().getSimpleName() + " prob result:"
                             + monitorResult);
                     SystemProber.this.processResult0(monitorResult);
                 }
 
             }, 1, this.getMonitorConfig().getSystemProbCycleTime(), .));
         }
         this..info(this.getClass().getSimpleName() + " prober started");
     }
 
 
     protected void processResult0(MonitorResult monitorResultthrows Exception {
         if (monitorResult != null) {
             this.processResult(monitorResult);
             this..handler(monitorResult);
         }
     }
 
 
     @Override
     protected void doStopProb() {
         cancelFutures(this.);
         this..info(this.getClass().getSimpleName() + " prober stoped");
     }


    
��ȡһ�μ�ؽ��
 
    protected abstract MonitorResult getMonitorResult(MsgSender senderthrows Exception;


    
һ�μ�ؽ��Ĵ���
    protected abstract void processResult(MonitorResult monitorResult);
    public void setProcessResultHook(ProcessResultHook processResultHook) {
        this. = processResultHook;
    }
    protected void alert(String msg) {
        this..warn(msg);
        Alarm.alert(msgthis.getMonitorConfig());
    }
New to GrepCode? Check out our FAQ X