Package com.taobao.zeus.schedule.mvc

Source Code of com.taobao.zeus.schedule.mvc.JobSuccessListener

package com.taobao.zeus.schedule.mvc;

import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;

import com.taobao.zeus.model.JobDescriptor;
import com.taobao.zeus.model.JobHistory;
import com.taobao.zeus.model.JobStatus.TriggerType;
import com.taobao.zeus.mvc.DispatcherListener;
import com.taobao.zeus.mvc.MvcEvent;
import com.taobao.zeus.schedule.mvc.event.JobSuccessEvent;
import com.taobao.zeus.socket.master.MasterContext;
import com.taobao.zeus.store.GroupManager;
import com.taobao.zeus.store.JobHistoryManager;
/**
* 任务失败的监听
* 当任务失败,需要发送邮件给相关人员
* @author zhoufang
*
*/
public class JobSuccessListener extends DispatcherListener{
  private static Logger log=LogManager.getLogger(JobSuccessListener.class);
  private GroupManager groupManager;
 
  private JobHistoryManager jobHistoryManager;
  public JobSuccessListener(MasterContext context){
    groupManager=(GroupManager) context.getGroupManager();
    jobHistoryManager=(JobHistoryManager)context.getJobHistoryManager();
  }
  @Override
  public void beforeDispatch(MvcEvent mvce) {
    try {
      if(mvce.getAppEvent() instanceof JobSuccessEvent){
        final JobSuccessEvent event=(JobSuccessEvent) mvce.getAppEvent();
        if(event.getTriggerType()==TriggerType.SCHEDULE){
          return;
        }
        JobHistory history=jobHistoryManager.findJobHistory(event.getHistoryId());
        final JobDescriptor jd=groupManager.getJobDescriptor(history.getJobId()).getX();
        if(history.getOperator()!=null){
          //此处可以发送IM消息
        }
      }
    } catch (Exception e) {
      //处理异常,防止后续的依赖任务受此影响,无法正常执行
      log.error("失败任务,发送通知出现异常",e);
    }
  }
}
TOP

Related Classes of com.taobao.zeus.schedule.mvc.JobSuccessListener

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.