本文整理了Java中com.twitter.util.Future
类的一些代码示例,展示了Future
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Future
类的具体详情如下:
包路径:com.twitter.util.Future
类名称:Future
暂无
代码示例来源:origin: twitter/distributedlog
oprot.writeMessageBegin(new TMessage("setAcceptNewStream", TMessageType.EXCEPTION, seqid));
x.write(oprot);
oprot.writeMessageEnd();
oprot.getTransport().flush();
byte[] buffer = Arrays.copyOfRange(memoryBuffer.getArray(), 0, memoryBuffer.length());
return Future.value(buffer);
} catch (Exception e1) {
return Future.exception(e1);
return Future.exception(e);
return Future.exception(e);
future = iface.setAcceptNewStream(args.enabled);
} catch (Exception e) {
future = Future.exception(e);
return future.flatMap(new Function<Void, Future<byte[]>>() {
public Future<byte[]> apply(Void value) {
setAcceptNewStream_result result = new setAcceptNewStream_result();
TProtocol oprot = protocolFactory.getProtocol(memoryBuffer);
}).rescue(new Function<Throwable, Future<byte[]>>() {
public Future<byte[]> apply(Throwable t) {
return Future.exception(t);
return Future.exception(e);
代码示例来源:origin: twitter/distributedlog
void readLoop() {
if (!running) {
return;
}
logReaders[streamIdx].readBulk(10).addEventListener(this);
}
代码示例来源:origin: twitter/distributedlog
@Override
public Future<Boolean> truncate(final DLSN dlsn) {
if (DLSN.InvalidDLSN == dlsn) {
return Future.value(false);
}
BKLogWriteHandler writeHandler;
try {
writeHandler = getWriteHandler();
} catch (IOException e) {
return Future.exception(e);
}
return writeHandler.setLogSegmentsOlderThanDLSNTruncated(dlsn).map(TruncationResultConverter);
}
代码示例来源:origin: twitter/distributedlog
public Future<ServerInfo> apply(byte[] __buffer__) {
TMemoryInputTransport __memoryTransport__ = new TMemoryInputTransport(__buffer__);
TProtocol __prot__ = ServiceToClient.this.protocolFactory.getProtocol(__memoryTransport__);
try {
return Future.value((new Client(__prot__)).recv_handshakeWithClientInfo());
} catch (Exception e) {
return Future.exception(e);
}
}
});
代码示例来源:origin: twitter/distributedlog
public Future<Long> recoverIncompleteLogSegments() {
try {
FailpointUtils.checkFailPoint(FailpointUtils.FailPointName.FP_RecoverIncompleteLogSegments);
} catch (IOException ioe) {
return Future.exception(ioe);
}
return asyncGetFilteredLedgerList(false, false).flatMap(recoverLogSegmentsFunction);
}
代码示例来源:origin: twitter/distributedlog
public Future<ServerInfo> handshake() {
try {
// TODO: size
TMemoryBuffer __memoryTransport__ = new TMemoryBuffer(512);
TProtocol __prot__ = this.protocolFactory.getProtocol(__memoryTransport__);
__prot__.writeMessageBegin(new TMessage("handshake", TMessageType.CALL, 0));
handshake_args __args__ = new handshake_args();
__args__.write(__prot__);
__prot__.writeMessageEnd();
byte[] __buffer__ = Arrays.copyOfRange(__memoryTransport__.getArray(), 0, __memoryTransport__.length());
ThriftClientRequest __request__ = new ThriftClientRequest(__buffer__, false);
Future<byte[]> __done__ = this.service.apply(__request__);
return __done__.flatMap(new Function<byte[], Future<ServerInfo>>() {
public Future<ServerInfo> apply(byte[] __buffer__) {
TMemoryInputTransport __memoryTransport__ = new TMemoryInputTransport(__buffer__);
TProtocol __prot__ = ServiceToClient.this.protocolFactory.getProtocol(__memoryTransport__);
try {
return Future.value((new Client(__prot__)).recv_handshake());
} catch (Exception e) {
return Future.exception(e);
}
}
});
} catch (TException e) {
return Future.exception(e);
}
}
public Future<ServerInfo> handshakeWithClientInfo(ClientInfo clientInfo) {
代码示例来源:origin: twitter/distributedlog
public Future<byte[]> apply(byte[] request) {
TTransport inputTransport = new TMemoryInputTransport(request);
TProtocol iprot = protocolFactory.getProtocol(inputTransport);
TMessage msg;
try {
msg = iprot.readMessageBegin();
} catch (Exception e) {
return Future.exception(e);
}
Function2<TProtocol, Integer, Future<byte[]>> fn = functionMap.get(msg.name);
if (fn == null) {
try {
TProtocolUtil.skip(iprot, TType.STRUCT);
iprot.readMessageEnd();
TApplicationException x = new TApplicationException(TApplicationException.UNKNOWN_METHOD, "Invalid method name: '"+msg.name+"'");
TMemoryBuffer memoryBuffer = new TMemoryBuffer(512);
TProtocol oprot = protocolFactory.getProtocol(memoryBuffer);
oprot.writeMessageBegin(new TMessage(msg.name, TMessageType.EXCEPTION, msg.seqid));
x.write(oprot);
oprot.writeMessageEnd();
oprot.getTransport().flush();
return Future.value(Arrays.copyOfRange(memoryBuffer.getArray(), 0, memoryBuffer.length()));
} catch (Exception e) {
return Future.exception(e);
}
}
return fn.apply(iprot, msg.seqid);
}
}
代码示例来源:origin: twitter/distributedlog
Future<List<LogSegmentMetadata>> setLogSegmentsOlderThanDLSNTruncated(final DLSN dlsn) {
if (DLSN.InvalidDLSN == dlsn) {
List<LogSegmentMetadata> emptyList = new ArrayList<LogSegmentMetadata>(0);
return Future.value(emptyList);
}
scheduleGetAllLedgersTaskIfNeeded();
return asyncGetFullLedgerList(false, false).flatMap(
new AbstractFunction1<List<LogSegmentMetadata>, Future<List<LogSegmentMetadata>>>() {
@Override
public Future<List<LogSegmentMetadata>> apply(List<LogSegmentMetadata> logSegments) {
return setLogSegmentsOlderThanDLSNTruncated(logSegments, dlsn);
}
});
}
代码示例来源:origin: twitter/distributedlog
@Override
public void run() {
reinitStream(idx).map(new Function<Void, Void>() {
@Override
public Void apply(Void value) {
LOG.info("Initialized stream reader {}.", idx);
latch.countDown();
return null;
}
});
}
});
代码示例来源:origin: twitter/distributedlog
@Override
public Future<Long> apply(Integer transmitRc) {
if (BKException.Code.OK == transmitRc) {
return Future.value(getLastTxIdAcknowledged());
} else {
return Future.exception(new BKTransmitException("Failed to transmit entry", transmitRc));
}
}
};
代码示例来源:origin: twitter/distributedlog
private Future<List<Try<DLSN>>> asTryList(Future<List<Future<DLSN>>> futureList) {
return futureList.flatMap(new AbstractFunction1<List<Future<DLSN>>, Future<List<Try<DLSN>>>>() {
@Override
public Future<List<Try<DLSN>>> apply(List<Future<DLSN>> results) {
return Future$.MODULE$.collectToTry(results);
}
});
}
代码示例来源:origin: twitter/distributedlog
fetchFutures.add(fetchLogLocation(uri, logName));
Future.collect(fetchFutures).addEventListener(new FutureEventListener<List<Optional<URI>>>() {
@Override
public void onSuccess(List<Optional<URI>> fetchResults) {
代码示例来源:origin: twitter/distributedlog
Future<Long> markEndOfStream() {
final Stopwatch stopwatch = Stopwatch.createStarted();
Future<BKLogSegmentWriter> logSegmentWriterFuture;
synchronized (this) {
logSegmentWriterFuture = this.rollingFuture;
}
if (null == logSegmentWriterFuture) {
logSegmentWriterFuture = getLogSegmentWriterForEndOfStream();
}
return logSegmentWriterFuture.flatMap(new AbstractFunction1<BKLogSegmentWriter, Future<Long>>() {
@Override
public Future<Long> apply(BKLogSegmentWriter w) {
return w.markEndOfStream();
}
}).addEventListener(new OpStatsListener<Long>(markEndOfStreamOpStatsLogger, stopwatch));
}
代码示例来源:origin: twitter/distributedlog
private Future<List<Void>> closeStreams(Set<Stream> streamsToClose, Optional<RateLimiter> rateLimiter) {
if (streamsToClose.isEmpty()) {
logger.info("No streams to close.");
List<Void> emptyList = new ArrayList<Void>();
return Future.value(emptyList);
}
List<Future<Void>> futures = new ArrayList<Future<Void>>(streamsToClose.size());
for (Stream stream : streamsToClose) {
if (rateLimiter.isPresent()) {
rateLimiter.get().acquire();
}
futures.add(stream.requestClose("Close Streams"));
}
return Future.collect(futures);
}
代码示例来源:origin: twitter/distributedlog
@Override
public Future<Optional<URI>> getLogLocation(final String logName) {
if (duplicatedLogFound.get()) {
return duplicatedLogException(duplicatedLogName.get());
}
URI location = log2Locations.get(logName);
if (null != location) {
return postStateCheck(Future.value(Optional.of(location)));
}
if (!forceCheckLogExistence) {
Optional<URI> result = Optional.absent();
return Future.value(result);
}
return postStateCheck(fetchLogLocation(logName).onSuccess(
new AbstractFunction1<Optional<URI>, BoxedUnit>() {
@Override
public BoxedUnit apply(Optional<URI> uriOptional) {
if (uriOptional.isPresent()) {
log2Locations.putIfAbsent(logName, uriOptional.get());
}
return BoxedUnit.UNIT;
}
}));
}
代码示例来源:origin: twitter/distributedlog
private void getLastCommitPositions(final Promise<Map<String, DLSN>> result,
List<String> subscribers) {
List<Future<Pair<String, DLSN>>> futures =
new ArrayList<Future<Pair<String, DLSN>>>(subscribers.size());
for (String s : subscribers) {
final String subscriber = s;
Future<Pair<String, DLSN>> future =
// Get the last commit position from zookeeper
getSubscriber(subscriber).getLastCommitPositionFromZK().map(
new AbstractFunction1<DLSN, Pair<String, DLSN>>() {
@Override
public Pair<String, DLSN> apply(DLSN dlsn) {
return Pair.of(subscriber, dlsn);
}
});
futures.add(future);
}
Future.collect(futures).foreach(
new AbstractFunction1<List<Pair<String, DLSN>>, BoxedUnit>() {
@Override
public BoxedUnit apply(List<Pair<String, DLSN>> subscriptions) {
Map<String, DLSN> subscriptionMap = new HashMap<String, DLSN>();
for (Pair<String, DLSN> pair : subscriptions) {
subscriptionMap.put(pair.getLeft(), pair.getRight());
}
result.setValue(subscriptionMap);
return BoxedUnit.UNIT;
}
});
}
代码示例来源:origin: twitter/distributedlog
@Override
public Future<Void> setAcceptNewStream(boolean enabled) {
Map<SocketAddress, ProxyClient> snapshot = clientManager.getAllClients();
List<Future<Void>> futures = new ArrayList<Future<Void>>(snapshot.size());
for (Map.Entry<SocketAddress, ProxyClient> entry : snapshot.entrySet()) {
futures.add(entry.getValue().getService().setAcceptNewStream(enabled));
}
return Future.collect(futures).map(new Function<List<Void>, Void>() {
@Override
public Void apply(List<Void> list) {
return null;
}
});
}
代码示例来源:origin: pinterest/pinlater
@Override
public Future<PinLaterDequeueResponse> dequeueJobs(
RequestContext context, final PinLaterDequeueRequest request) {
if (!queueConfig.allowDequeue(request.getQueueName(), request.getLimit())) {
Stats.incr(request.getQueueName() + "_dequeue_requests_rate_limited");
return Future.exception(new PinLaterException(ErrorCode.DEQUEUE_RATE_LIMITED,
"Dequeue rate limit exceeded for queue: " + request.getQueueName()));
}
return Stats.timeFutureMillis(
"PinLaterService.dequeueJobs",
backend.dequeueJobs(context.getSource(), request).onSuccess(
new Function<PinLaterDequeueResponse, BoxedUnit>() {
@Override
public BoxedUnit apply(PinLaterDequeueResponse response) {
Stats.incr(request.getQueueName() + "_dequeue", response.getJobsSize());
return null;
}
}).rescue(new LogAndWrapException<PinLaterDequeueResponse>(
context, "dequeueJobs", request.toString())));
}
代码示例来源:origin: pinterest/pinlater
@Override
public Future<PinLaterEnqueueResponse> enqueueJobs(
RequestContext context, final PinLaterEnqueueRequest request) {
return Stats.timeFutureMillis(
"PinLaterService.enqueueJobs",
backend.enqueueJobs(request).onSuccess(
new Function<PinLaterEnqueueResponse, BoxedUnit>() {
@Override
public BoxedUnit apply(PinLaterEnqueueResponse response) {
Stats.incr(request.getQueueName() + "_enqueue", request.getJobsSize());
return null;
}
}).rescue(new LogAndWrapException<PinLaterEnqueueResponse>(
context, "enqueueJobs", request.toString())));
}
代码示例来源:origin: org.apache.distributedlog/distributedlog-service
return Futures.collect(futures).map(new Function<List<StreamLoad>, TreeSet<ServerLoad>>() {
@Override
public TreeSet<ServerLoad> apply(List<StreamLoad> streamLoads) {
}).onSuccess(new Function<TreeSet<ServerLoad>, BoxedUnit>() {
@Override
public BoxedUnit apply(TreeSet<ServerLoad> serverLoads) {
return BoxedUnit.UNIT;
}).onFailure(new Function<Throwable, BoxedUnit>() {
@Override
public BoxedUnit apply(Throwable t) {
内容来源于网络,如有侵权,请联系作者删除!