Package com.taobao.zeus.socket.master.reqresp

Source Code of com.taobao.zeus.socket.master.reqresp.MasterBeWebDebug

package com.taobao.zeus.socket.master.reqresp;

import java.util.ArrayList;

import com.taobao.zeus.model.DebugHistory;
import com.taobao.zeus.socket.SocketLog;
import com.taobao.zeus.socket.master.MasterContext;
import com.taobao.zeus.socket.protocol.Protocol.Status;
import com.taobao.zeus.socket.protocol.Protocol.WebOperate;
import com.taobao.zeus.socket.protocol.Protocol.WebRequest;
import com.taobao.zeus.socket.protocol.Protocol.WebResponse;

public class MasterBeWebDebug {
  public WebResponse beWebExecute(MasterContext context,WebRequest req) {
    // 判断job是否已经在运行中,或者在队列中
    // 如果在,抛出异常,已经在执行中
    // 如果不在,将该job放入等待队列
    SocketLog.info("receive web debug request,rid="+req.getRid()+",debugId="+req.getId());
    String debugId=req.getId();
    for(String debug:new ArrayList<String>(context.getDebugQueue())){
      if(debug.equals(debugId)){
        WebResponse resp=WebResponse.newBuilder().setRid(req.getRid()).setOperate(WebOperate.ExecuteDebug)
          .setStatus(Status.ERROR).setErrorText("已经在队列中,无法再次运行").build();
        return resp;
      }
    }
   
    DebugHistory debug=context.getDebugHistoryManager().findDebugHistory(debugId);
    context.getMaster().debug(debug);
   
    WebResponse resp=WebResponse.newBuilder().setRid(req.getRid()).setOperate(WebOperate.ExecuteDebug)
      .setStatus(Status.OK).build();
    SocketLog.info("send web debug response,rid="+req.getRid()+",debugId="+debugId);
    return resp;
  }
}
TOP

Related Classes of com.taobao.zeus.socket.master.reqresp.MasterBeWebDebug

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.