本文整理汇总了Java中com.alibaba.dubbo.remoting.exchange.support.DefaultFuture类的典型用法代码示例。如果您正苦于以下问题:Java DefaultFuture类的具体用法?Java DefaultFuture怎么用?Java DefaultFuture使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
DefaultFuture类属于com.alibaba.dubbo.remoting.exchange.support包,在下文中一共展示了DefaultFuture类的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: close
import com.alibaba.dubbo.remoting.exchange.support.DefaultFuture; //导入依赖的package包/类
public void close(int timeout) {
if (closed) {
return;
}
closed = true;
if (timeout > 0) {
long start = System.currentTimeMillis();
while (DefaultFuture.hasFuture(HeaderExchangeChannel.this)
&& System.currentTimeMillis() - start < timeout) {
try {
Thread.sleep(10);
} catch (InterruptedException e) {
logger.warn(e.getMessage(), e);
}
}
}
close();
}
示例2: close
import com.alibaba.dubbo.remoting.exchange.support.DefaultFuture; //导入依赖的package包/类
public void close(int timeout) {
if (closed) {
return;
}
closed = true;
if (timeout > 0) {
long start = System.currentTimeMillis();
//检查当前channel上是否还存在未完成响应的请求
while (DefaultFuture.hasFuture(HeaderExchangeChannel.this)
&& System.currentTimeMillis() - start < timeout) {
try {
Thread.sleep(10);//spin 10 ms
} catch (InterruptedException e) {
logger.warn(e.getMessage(), e);
}
}
}
close();
}
示例3: close
import com.alibaba.dubbo.remoting.exchange.support.DefaultFuture; //导入依赖的package包/类
public void close(int timeout) {
if (closed) {
return;
}
closed = true;
if (timeout > 0) {
long start = System.currentTimeMillis();
while (DefaultFuture.hasFuture(channel)
&& System.currentTimeMillis() - start < timeout) {
try {
Thread.sleep(10);
} catch (InterruptedException e) {
log.warn(e.getMessage(), e);
}
}
}
close();
}
示例4: close
import com.alibaba.dubbo.remoting.exchange.support.DefaultFuture; //导入依赖的package包/类
public void close(int timeout) {
if (closed) {
return;
}
closed = true;
if (timeout > 0) {
long start = System.currentTimeMillis();
while (DefaultFuture.hasFuture(channel)
&& System.currentTimeMillis() - start < timeout) {
try {
Thread.sleep(10);
} catch (InterruptedException e) {
logger.warn(e.getMessage(), e);
}
}
}
close();
}
示例5: isRunning
import com.alibaba.dubbo.remoting.exchange.support.DefaultFuture; //导入依赖的package包/类
private boolean isRunning() {
Collection<Channel> channels = getChannels();
for (Channel channel : channels) {
if (DefaultFuture.hasFuture(channel)) {
return true;
}
}
return false;
}
示例6: sent
import com.alibaba.dubbo.remoting.exchange.support.DefaultFuture; //导入依赖的package包/类
public void sent(Channel channel, Object message) throws RemotingException {
Throwable exception = null;
try {
channel.setAttribute(KEY_WRITE_TIMESTAMP, System.currentTimeMillis());
ExchangeChannel exchangeChannel = HeaderExchangeChannel.getOrAddChannel(channel);
try {
handler.sent(exchangeChannel, message);
} finally {
HeaderExchangeChannel.removeChannelIfDisconnected(channel);
}
} catch (Throwable t) {
exception = t;
}
if (message instanceof Request) {
Request request = (Request) message;
DefaultFuture.sent(channel, request);
}
if (exception != null) {
if (exception instanceof RuntimeException) {
throw (RuntimeException) exception;
} else if (exception instanceof RemotingException) {
throw (RemotingException) exception;
} else {
throw new RemotingException(channel.getLocalAddress(), channel.getRemoteAddress(),
exception.getMessage(), exception);
}
}
}
示例7: getRequestData
import com.alibaba.dubbo.remoting.exchange.support.DefaultFuture; //导入依赖的package包/类
protected Object getRequestData(long id) {
DefaultFuture future = DefaultFuture.getFuture(id);
if (future == null)
return null;
Request req = future.getRequest();
if (req == null)
return null;
return req.getData();
}