Package org.eclipse.jetty.util
Class SocketAddressResolver.Async
java.lang.Object
org.eclipse.jetty.util.SocketAddressResolver.Async
- All Implemented Interfaces:
SocketAddressResolver
- Enclosing interface:
- SocketAddressResolver
@ManagedObject("The asynchronous address resolver")
public static class SocketAddressResolver.Async
extends Object
implements SocketAddressResolver
Creates InetSocketAddress
instances asynchronously in a different thread.
InetSocketAddress(String, int)
attempts to perform a DNS
resolution of the host name, and this may block for several seconds.
This class creates the InetSocketAddress
in a separate thread and provides the result
through a Promise
, with the possibility to specify a timeout for the operation.
Example usage:
SocketAddressResolver resolver = new SocketAddressResolver.Async(executor, scheduler, timeout); resolver.resolve("www.google.com", 80, new Promise<SocketAddress>() { public void succeeded(SocketAddress result) { // The address was resolved } public void failed(Throwable failure) { // The address resolution failed } });
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.SocketAddressResolver
SocketAddressResolver.Async, SocketAddressResolver.Sync
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionlong
void
resolve
(String host, int port, Promise<List<InetSocketAddress>> promise) Resolves via DNS the given host and port, within the connect timeout, returning a list ofInetSocketAddress
through the givenPromise
.
-
Constructor Details
-
Async
Creates a new instance with the given executor (to perform DNS resolution in a separate thread), the given scheduler (to cancel the operation if it takes too long) and the given timeout, in milliseconds.- Parameters:
executor
- the thread pool to use to perform DNS resolution in pooled threadsscheduler
- the scheduler to schedule tasks to cancel DNS resolution if it takes too longtimeout
- the timeout, in milliseconds, for the DNS resolution to complete
-
-
Method Details
-
getExecutor
-
getScheduler
-
getTimeout
@ManagedAttribute(value="The timeout, in milliseconds, to resolve an address", readonly=true) public long getTimeout() -
resolve
Description copied from interface:SocketAddressResolver
Resolves via DNS the given host and port, within the connect timeout, returning a list ofInetSocketAddress
through the givenPromise
.- Specified by:
resolve
in interfaceSocketAddressResolver
- Parameters:
host
- the host to resolveport
- the port of the resulting socket addresspromise
- the callback invoked when the resolution succeeds or fails
-