WebRpcRetryFilter.java
package com.mycim.webapp.retry;
import com.alipay.sofa.rpc.core.exception.RpcErrorType;
import com.alipay.sofa.rpc.core.exception.SofaRpcException;
import com.alipay.sofa.rpc.core.request.SofaRequest;
import com.alipay.sofa.rpc.core.response.SofaResponse;
import com.alipay.sofa.rpc.ext.Extension;
import com.alipay.sofa.rpc.filter.AutoActive;
import com.alipay.sofa.rpc.filter.Filter;
import com.alipay.sofa.rpc.filter.FilterInvoker;
@Extension("customer")
@AutoActive(consumerSide = true)
public class WebRpcRetryFilter extends Filter {
@Override
public SofaResponse invoke(FilterInvoker invoker, SofaRequest request) throws SofaRpcException {
SofaResponse sofaResponse = invoker.invoke(request);
if (sofaResponse.isError() && sofaResponse.getErrorMsg().contains("RPC-020100011")) {
throw new SofaRpcException(RpcErrorType.SERVER_BUSY, sofaResponse.getErrorMsg());
}
return sofaResponse;
}
}