com.netflix.zuul.netty.filter.ZuulFilterChainHandler.fireEndpointFinish()方法的使用及代码示例

x33g5p2x  于2022-02-05 转载在 其他  
字(6.3k)|赞(0)|评价(0)|浏览(94)

本文整理了Java中com.netflix.zuul.netty.filter.ZuulFilterChainHandler.fireEndpointFinish()方法的一些代码示例,展示了ZuulFilterChainHandler.fireEndpointFinish()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ZuulFilterChainHandler.fireEndpointFinish()方法的具体详情如下:
包路径:com.netflix.zuul.netty.filter.ZuulFilterChainHandler
类名称:ZuulFilterChainHandler
方法名:fireEndpointFinish

ZuulFilterChainHandler.fireEndpointFinish介绍

暂无

代码示例

代码示例来源:origin: Netflix/zuul

@Override
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
  LOG.error("zuul filter chain handler caught exception. cause=" + String.valueOf(cause), cause);
  if (zuulRequest != null && !isClientChannelClosed(cause)) {
    final SessionContext zuulCtx = zuulRequest.getContext();
    zuulCtx.setError(cause);
    zuulCtx.setShouldSendErrorResponse(true);
    sendResponse(FAILURE_LOCAL, 500, ctx);
  } else {
    fireEndpointFinish(true);
    ctx.close();
  }
}

代码示例来源:origin: Netflix/zuul

@Override
public final void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
  if (evt instanceof CompleteEvent) {
    final CompleteEvent completeEvent = (CompleteEvent)evt;
    fireEndpointFinish(completeEvent.getReason() != SESSION_COMPLETE);
  }
  else if (evt instanceof HttpRequestReadTimeoutEvent) {
    sendResponse(FAILURE_CLIENT_TIMEOUT, 408, ctx);
  }
  else if (evt instanceof IdleStateEvent) {
    sendResponse(FAILURE_LOCAL_IDLE_TIMEOUT, 504, ctx);
  }
  else if (evt instanceof RequestCancelledEvent) {
    if (zuulRequest != null) {
      StatusCategoryUtils.storeStatusCategoryIfNotAlreadyFailure(zuulRequest.getContext(), FAILURE_CLIENT_CANCELLED);
    }
    fireEndpointFinish(true);
    ctx.close();
  }
  else if (evt instanceof HttpLifecycleChannelHandler.RejectedPipeliningEvent) {
    sendResponse(FAILURE_CLIENT_PIPELINE_REJECT, 400, ctx);
  }
  super.userEventTriggered(ctx, evt);
}

代码示例来源:origin: Netflix/zuul

@Override
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
  LOG.error("zuul filter chain handler caught exception. cause=" + String.valueOf(cause), cause);
  if (zuulRequest != null && !isClientChannelClosed(cause)) {
    final SessionContext zuulCtx = zuulRequest.getContext();
    zuulCtx.setError(cause);
    zuulCtx.setShouldSendErrorResponse(true);
    sendResponse(FAILURE_LOCAL, 500, ctx);
  } else {
    fireEndpointFinish(true);
    ctx.close();
  }
}

代码示例来源:origin: Netflix/zuul

private void sendResponse(final StatusCategory statusCategory, final int status, ChannelHandlerContext ctx) {
  if (zuulRequest == null) {
    ctx.close();
  }
  else {
    final SessionContext zuulCtx = zuulRequest.getContext();
    StatusCategoryUtils.storeStatusCategoryIfNotAlreadyFailure(zuulCtx, statusCategory);
    final HttpResponseMessage zuulResponse = new HttpResponseMessageImpl(zuulCtx, zuulRequest, status);
    final Headers headers = zuulResponse.getHeaders();
    headers.add("Connection", "close");
    headers.add("Content-Length", "0");
    zuulResponse.finishBufferedBodyIfIncomplete();
    responseFilterChain.filter(zuulResponse);
    fireEndpointFinish(true);
  }
}

代码示例来源:origin: Netflix/zuul

@Override
public final void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
  if (evt instanceof CompleteEvent) {
    final CompleteEvent completeEvent = (CompleteEvent)evt;
    fireEndpointFinish(completeEvent.getReason() != SESSION_COMPLETE);
  }
  else if (evt instanceof HttpRequestReadTimeoutEvent) {
    sendResponse(FAILURE_CLIENT_TIMEOUT, 408, ctx);
  }
  else if (evt instanceof IdleStateEvent) {
    sendResponse(FAILURE_LOCAL_IDLE_TIMEOUT, 504, ctx);
  }
  else if (evt instanceof RequestCancelledEvent) {
    if (zuulRequest != null) {
      StatusCategoryUtils.storeStatusCategoryIfNotAlreadyFailure(zuulRequest.getContext(), FAILURE_CLIENT_CANCELLED);
    }
    fireEndpointFinish(true);
    ctx.close();
  }
  else if (evt instanceof HttpLifecycleChannelHandler.RejectedPipeliningEvent) {
    sendResponse(FAILURE_CLIENT_PIPELINE_REJECT, 400, ctx);
  }
  super.userEventTriggered(ctx, evt);
}

代码示例来源:origin: Netflix/zuul

private void sendResponse(final StatusCategory statusCategory, final int status, ChannelHandlerContext ctx) {
  if (zuulRequest == null) {
    ctx.close();
  }
  else {
    final SessionContext zuulCtx = zuulRequest.getContext();
    StatusCategoryUtils.storeStatusCategoryIfNotAlreadyFailure(zuulCtx, statusCategory);
    final HttpResponseMessage zuulResponse = new HttpResponseMessageImpl(zuulCtx, zuulRequest, status);
    final Headers headers = zuulResponse.getHeaders();
    headers.add("Connection", "close");
    headers.add("Content-Length", "0");
    zuulResponse.finishBufferedBodyIfIncomplete();
    responseFilterChain.filter(zuulResponse);
    fireEndpointFinish(true);
  }
}

代码示例来源:origin: com.netflix.zuul/zuul-core

@Override
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
  LOG.error("zuul filter chain handler caught exception. cause=" + String.valueOf(cause), cause);
  if (zuulRequest != null && !isClientChannelClosed(cause)) {
    final SessionContext zuulCtx = zuulRequest.getContext();
    zuulCtx.setError(cause);
    zuulCtx.setShouldSendErrorResponse(true);
    sendResponse(FAILURE_LOCAL, 500, ctx);
  } else {
    fireEndpointFinish(true);
    ctx.close();
  }
}

代码示例来源:origin: com.netflix.zuul/zuul-core

@Override
public final void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
  if (evt instanceof CompleteEvent) {
    final CompleteEvent completeEvent = (CompleteEvent)evt;
    fireEndpointFinish(completeEvent.getReason() != SESSION_COMPLETE);
  }
  else if (evt instanceof HttpRequestReadTimeoutEvent) {
    sendResponse(FAILURE_CLIENT_TIMEOUT, 408, ctx);
  }
  else if (evt instanceof IdleStateEvent) {
    sendResponse(FAILURE_LOCAL_IDLE_TIMEOUT, 504, ctx);
  }
  else if (evt instanceof RequestCancelledEvent) {
    if (zuulRequest != null) {
      StatusCategoryUtils.storeStatusCategoryIfNotAlreadyFailure(zuulRequest.getContext(), FAILURE_CLIENT_CANCELLED);
    }
    fireEndpointFinish(true);
    ctx.close();
  }
  else if (evt instanceof HttpLifecycleChannelHandler.RejectedPipeliningEvent) {
    sendResponse(FAILURE_CLIENT_PIPELINE_REJECT, 400, ctx);
  }
  super.userEventTriggered(ctx, evt);
}

代码示例来源:origin: com.netflix.zuul/zuul-core

private void sendResponse(final StatusCategory statusCategory, final int status, ChannelHandlerContext ctx) {
  if (zuulRequest == null) {
    ctx.close();
  }
  else {
    final SessionContext zuulCtx = zuulRequest.getContext();
    StatusCategoryUtils.storeStatusCategoryIfNotAlreadyFailure(zuulCtx, statusCategory);
    final HttpResponseMessage zuulResponse = new HttpResponseMessageImpl(zuulCtx, zuulRequest, status);
    final Headers headers = zuulResponse.getHeaders();
    headers.add("Connection", "close");
    headers.add("Content-Length", "0");
    zuulResponse.finishBufferedBodyIfIncomplete();
    responseFilterChain.filter(zuulResponse);
    fireEndpointFinish(true);
  }
}

相关文章