当前位置: 首页>>代码示例>>Java>>正文


Java RpcUtils.isAsync方法代码示例

本文整理汇总了Java中com.alibaba.dubbo.rpc.support.RpcUtils.isAsync方法的典型用法代码示例。如果您正苦于以下问题:Java RpcUtils.isAsync方法的具体用法?Java RpcUtils.isAsync怎么用?Java RpcUtils.isAsync使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在com.alibaba.dubbo.rpc.support.RpcUtils的用法示例。


在下文中一共展示了RpcUtils.isAsync方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: invoke

import com.alibaba.dubbo.rpc.support.RpcUtils; //导入方法依赖的package包/类
public Result invoke(final Invoker<?> invoker, final Invocation invocation) throws RpcException {
	final boolean isAsync = RpcUtils.isAsync(invoker.getUrl(), invocation);
    
	fireInvokeCallback(invoker, invocation);
    //需要在调用前配置好是否有返回值,已供invoker判断是否需要返回future.
    Result result = invoker.invoke(invocation);
    if (isAsync) {
        asyncCallback(invoker, invocation);
    } else {
        syncCallback(invoker, invocation, result);
    }
    return result;
}
 
开发者ID:dachengxi,项目名称:EatDubbo,代码行数:14,代码来源:FutureFilter.java

示例2: doInvoke

import com.alibaba.dubbo.rpc.support.RpcUtils; //导入方法依赖的package包/类
@Override
protected Result doInvoke(final Invocation invocation) throws Throwable {
    RpcInvocation inv = (RpcInvocation) invocation;
    final String methodName = RpcUtils.getMethodName(invocation);
    inv.setAttachment(Constants.PATH_KEY, getUrl().getPath());
    inv.setAttachment(Constants.VERSION_KEY, version);

    ExchangeClient currentClient;
    if (clients.length == 1) {
        currentClient = clients[0];
    } else {
        currentClient = clients[index.getAndIncrement() % clients.length];
    }
    try {
        boolean isAsync = RpcUtils.isAsync(getUrl(), invocation);
        boolean isOneway = RpcUtils.isOneway(getUrl(), invocation);
        int timeout = getUrl().getMethodParameter(methodName, Constants.TIMEOUT_KEY, Constants.DEFAULT_TIMEOUT);
        if (isOneway) {
        	boolean isSent = getUrl().getMethodParameter(methodName, Constants.SENT_KEY, false);
            currentClient.send(inv, isSent);
            RpcContext.getContext().setFuture(null);
            return new RpcResult();
        } else if (isAsync) {
        	ResponseFuture future = currentClient.request(inv, timeout) ;
            RpcContext.getContext().setFuture(new FutureAdapter<Object>(future));
            return new RpcResult();
        } else {
        	RpcContext.getContext().setFuture(null);
            return (Result) currentClient.request(inv, timeout).get();
        }
    }catch (RemotingException e) {
        throw new RpcException(RpcException.NETWORK_EXCEPTION, "Failed to invoke remote method: " + invocation.getMethodName() + ", provider: " + getUrl() + ", cause: " + e.getMessage(), e);
    }
}
 
开发者ID:xyp260466,项目名称:dubbo-lite,代码行数:35,代码来源:DubboInvoker.java

示例3: invoke

import com.alibaba.dubbo.rpc.support.RpcUtils; //导入方法依赖的package包/类
public Result invoke(final Invoker<?> invoker, final Invocation invocation) throws RpcException {
	final boolean isAsync = RpcUtils.isAsync(invoker.getUrl(), invocation);
    // 这里主要处理回调逻辑,主要区分三个时间:oninvoke:调用前触发,onreturn:调用后触发 onthrow:出现异常情况时候触发
	fireInvokeCallback(invoker, invocation);
    //需要在调用前配置好是否有返回值,已供invoker判断是否需要返回future.
    Result result = invoker.invoke(invocation);
    if (isAsync) {
        asyncCallback(invoker, invocation);
    } else {
        syncCallback(invoker, invocation, result);
    }
    return result;
}
 
开发者ID:DoubleSmile,项目名称:dubbo-learning,代码行数:14,代码来源:FutureFilter.java

示例4: invoke

import com.alibaba.dubbo.rpc.support.RpcUtils; //导入方法依赖的package包/类
public Result invoke(final Invoker<?> invoker, final Invocation invocation) throws JahhanException {
	final boolean isAsync = RpcUtils.isAsync(invoker.getUrl(), invocation);
    
	fireInvokeCallback(invoker, invocation);
    //需要在调用前配置好是否有返回值,已供invoker判断是否需要返回future.
    Result result = invoker.invoke(invocation);
    if (isAsync) {
        asyncCallback(invoker, invocation);
    } else {
        syncCallback(invoker, invocation, result);
    }
    return result;
}
 
开发者ID:nince-wyj,项目名称:jahhan,代码行数:14,代码来源:FutureFilter.java

示例5: invoke

import com.alibaba.dubbo.rpc.support.RpcUtils; //导入方法依赖的package包/类
public Result invoke(final Invoker<?> invoker, final Invocation invocation) throws RpcException {
    final boolean isAsync = RpcUtils.isAsync(invoker.getUrl(), invocation);

    fireInvokeCallback(invoker, invocation);
    //需要在调用前配置好是否有返回值,已供invoker判断是否需要返回future.
    Result result = invoker.invoke(invocation);
    if (isAsync) {
        asyncCallback(invoker, invocation);
    } else {
        syncCallback(invoker, invocation, result);
    }
    return result;
}
 
开发者ID:hufeng,项目名称:dubbo2.js,代码行数:14,代码来源:FutureFilter.java


注:本文中的com.alibaba.dubbo.rpc.support.RpcUtils.isAsync方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。