zoukankan      html  css  js  c++  java
  • dubbo源码阅读-Filter默认实现(十一)之TimeoutFilter

    /**
     * Log any invocation timeout, but don't stop server from running
     * 服务于服务提供者
     */
    @Activate(group = Constants.PROVIDER)
    public class TimeoutFilter implements Filter {
    
        private static final Logger logger = LoggerFactory.getLogger(TimeoutFilter.class);
    
        @Override
        public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {
            //获得开始时间
            long start = System.currentTimeMillis();
            //执行调用
            Result result = invoker.invoke(invocation);
            //计算耗时
            long elapsed = System.currentTimeMillis() - start;
            //超过提供者配置的timeout 配置 则打印告警日志
            if (invoker.getUrl() != null
                    && elapsed > invoker.getUrl().getMethodParameter(invocation.getMethodName(),
                    "timeout", Integer.MAX_VALUE)) {
                if (logger.isWarnEnabled()) {
                    logger.warn("invoke time out. method: " + invocation.getMethodName()
                            + " arguments: " + Arrays.toString(invocation.getArguments()) + " , url is "
                            + invoker.getUrl() + ", invoke elapsed " + elapsed + " ms.");
                }
            }
            return result;
        }
    
    }
  • 相关阅读:
    简单的登录验证小程序_python
    远程执行命令_python
    远程执行本地脚本_linux
    反射_python
    ssh oa项目介绍
    返回上一级过程
    ssh框架开发crm(客户关系系统总结)
    struct相对路径,绝对路径
    <s:textfield>标签回显
    ssh框架整合
  • 原文地址:https://www.cnblogs.com/LQBlog/p/12505220.html
Copyright © 2011-2022 走看看