Interface Vertx
-
- All Superinterfaces:
Measured
public interface Vertx extends Measured
The entry point into the Vert.x Core API.You use an instance of this class for functionality including:
- Creating TCP clients and servers
- Creating HTTP clients and servers
- Creating DNS clients
- Creating Datagram sockets
- Setting and cancelling periodic and one-shot timers
- Getting a reference to the event bus API
- Getting a reference to the file system API
- Getting a reference to the shared data API
- Deploying and undeploying verticles
Most functionality in Vert.x core is fairly low level.
To create an instance of this class you can use the static factory methods:
vertx()
,vertx(io.vertx.core.VertxOptions)
andclusteredVertx(io.vertx.core.VertxOptions)
.Please see the user manual for more detailed usage information.
- Author:
- Tim Fox, Julien Viet
-
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description static VertxBuilder
builder()
Return a builder for Vert.x instances which allows to specify SPI such as cluster manager, metrics or tracing.boolean
cancelTimer(long id)
Cancels the timer with the specifiedid
.Future<Void>
close()
Stop the Vertx instance and release any resources held by it.static Future<Vertx>
clusteredVertx(VertxOptions options)
Creates a clustered instance using the specified options.default DatagramSocket
createDatagramSocket()
Create a datagram socket using default optionsDatagramSocket
createDatagramSocket(DatagramSocketOptions options)
Create a datagram socket using the specified optionsDnsClient
createDnsClient()
Create a DNS client to connect to the DNS server configured byVertxOptions.getAddressResolverOptions()
DnsClient
createDnsClient(int port, String host)
Create a DNS client to connect to a DNS server at the specified host and port, with the default query timeout (5 seconds)DnsClient
createDnsClient(DnsClientOptions options)
Create a DNS client to connect to a DNS serverdefault HttpClientAgent
createHttpClient()
Create a HTTP/HTTPS client using default optionsdefault HttpClientAgent
createHttpClient(HttpClientOptions clientOptions)
Create a HTTP/HTTPS client using the specified client optionsdefault HttpClientAgent
createHttpClient(HttpClientOptions clientOptions, PoolOptions poolOptions)
Create a HTTP/HTTPS client using the specified client and pool optionsdefault HttpClientAgent
createHttpClient(PoolOptions poolOptions)
Create a HTTP/HTTPS client using the specified pool optionsdefault HttpServer
createHttpServer()
Create an HTTP/HTTPS server using default optionsHttpServer
createHttpServer(HttpServerOptions options)
Create an HTTP/HTTPS server using the specified optionsdefault NetClient
createNetClient()
Create a TCP/SSL client using default optionsNetClient
createNetClient(NetClientOptions options)
Create a TCP/SSL client using the specified optionsdefault NetServer
createNetServer()
Create a TCP/SSL server using default optionsNetServer
createNetServer(NetServerOptions options)
Create a TCP/SSL server using the specified optionsWorkerExecutor
createSharedWorkerExecutor(String name)
LikecreateSharedWorkerExecutor(String, int)
but with theVertxOptions.setWorkerPoolSize(int)
poolSize
.WorkerExecutor
createSharedWorkerExecutor(String name, int poolSize)
LikecreateSharedWorkerExecutor(String, int, long)
but with theVertxOptions.setMaxWorkerExecuteTime(long)
maxExecuteTime
.WorkerExecutor
createSharedWorkerExecutor(String name, int poolSize, long maxExecuteTime)
LikecreateSharedWorkerExecutor(String, int, long, TimeUnit)
but with theVertxOptions.setMaxWorkerExecuteTimeUnit(TimeUnit)
maxExecuteTimeUnit
.WorkerExecutor
createSharedWorkerExecutor(String name, int poolSize, long maxExecuteTime, TimeUnit maxExecuteTimeUnit)
Create a named worker executor, the executor should be closed when it's not needed anymore to release resources.default WebSocketClient
createWebSocketClient()
Create a WebSocket client using default optionsWebSocketClient
createWebSocketClient(WebSocketClientOptions options)
Create a WebSocket client using the specified optionsstatic Context
currentContext()
Gets the current contextSet<String>
deploymentIDs()
Return a Set of deployment IDs for the currently deployed deploymentIDs.default Future<String>
deployVerticle(Deployable verticle)
Deploy a verticle instance that you have created yourself.default Future<String>
deployVerticle(Deployable verticle, DeploymentOptions options)
LikedeployVerticle(Deployable)
butDeploymentOptions
are provided to configure the deployment.Future<String>
deployVerticle(Class<? extends Deployable> verticleClass, DeploymentOptions options)
LikedeployVerticle(Deployable, DeploymentOptions)
butDeployable
instance is created by invoking the default constructor ofverticleClass
.default Future<String>
deployVerticle(String name)
Deploy a verticle instance given a name.Future<String>
deployVerticle(String name, DeploymentOptions options)
LikedeployVerticle(Deployable)
butDeploymentOptions
are provided to configure the deployment.Future<String>
deployVerticle(java.util.function.Supplier<? extends Deployable> supplier, DeploymentOptions options)
LikedeployVerticle(Deployable, DeploymentOptions)
butDeployable
instance is created by invoking theverticleSupplier
.EventBus
eventBus()
Get the event bus object.Handler<Throwable>
exceptionHandler()
Vertx
exceptionHandler(Handler<Throwable> handler)
Set a default exception handler forContext
, set onContext.exceptionHandler(Handler)
at creation.default <T> Future<T>
executeBlocking(Callable<T> blockingCodeHandler)
LikeexecuteBlocking(Callable, boolean)
called with ordered = true.default <T> Future<T>
executeBlocking(Callable<T> blockingCodeHandler, boolean ordered)
Safely execute some blocking code.FileSystem
fileSystem()
Get the filesystem object.Context
getOrCreateContext()
Gets the current context, or creates one if there isn't oneHttpClientBuilder
httpClientBuilder()
Provide a builder forHttpClient
, it can be used to configure advanced HTTP client settings like a redirect handler or a connection handler.boolean
isClustered()
Is this Vert.x instance clustered?boolean
isNativeTransportEnabled()
void
registerVerticleFactory(VerticleFactory factory)
Register aVerticleFactory
that can be used for deploying Verticles based on an identifier.void
runOnContext(Handler<Void> action)
Puts the handler on the event queue for the current context so it will be run asynchronously ASAP after all preceeding events have been handled.long
setPeriodic(long initialDelay, long delay, Handler<Long> handler)
Set a periodic timer to fire everydelay
milliseconds with initial delay, at which pointhandler
will be called with the id of the timer.default long
setPeriodic(long delay, Handler<Long> handler)
Set a periodic timer to fire everydelay
milliseconds, at which pointhandler
will be called with the id of the timer.long
setTimer(long delay, Handler<Long> handler)
Set a one-shot timer to fire afterdelay
milliseconds, at which pointhandler
will be called with the id of the timer.SharedData
sharedData()
Get the shared data object.default Timer
timer(long delay)
Liketimer(long, TimeUnit)
with a unit in millis.default Timer
timer(long delay, TimeUnit unit)
Create a timer task configured with the specifieddelay
, when the timeout fires the timer future is succeeded, when the timeout is cancelled the timer future is failed with aCancellationException
instance.Throwable
unavailableNativeTransportCause()
Future<Void>
undeploy(String deploymentID)
Undeploy a verticle deployment.void
unregisterVerticleFactory(VerticleFactory factory)
Unregister aVerticleFactory
Set<VerticleFactory>
verticleFactories()
Return the Set of currently registered verticle factories.static Vertx
vertx()
Creates a non clustered instance using default options.static Vertx
vertx(VertxOptions options)
Creates a non clustered instance using the specified options-
Methods inherited from interface io.vertx.core.metrics.Measured
isMetricsEnabled
-
-
-
-
Method Detail
-
builder
static VertxBuilder builder()
Return a builder for Vert.x instances which allows to specify SPI such as cluster manager, metrics or tracing.- Returns:
- a Vert.x instance builder
-
vertx
static Vertx vertx()
Creates a non clustered instance using default options.- Returns:
- the instance
-
vertx
static Vertx vertx(VertxOptions options)
Creates a non clustered instance using the specified options- Parameters:
options
- the options to use- Returns:
- the instance
-
clusteredVertx
static Future<Vertx> clusteredVertx(VertxOptions options)
Creates a clustered instance using the specified options.The instance is created asynchronously and the returned future is completed with the result when it is ready.
- Parameters:
options
- the options to use- Returns:
- a future completed with the clustered vertx
-
currentContext
static Context currentContext()
Gets the current context- Returns:
- The current context or
null
if there is no current context
-
getOrCreateContext
Context getOrCreateContext()
Gets the current context, or creates one if there isn't one- Returns:
- The current context (created if didn't exist)
-
createNetServer
NetServer createNetServer(NetServerOptions options)
Create a TCP/SSL server using the specified options- Parameters:
options
- the options to use- Returns:
- the server
-
createNetServer
default NetServer createNetServer()
Create a TCP/SSL server using default options- Returns:
- the server
-
createNetClient
NetClient createNetClient(NetClientOptions options)
Create a TCP/SSL client using the specified options- Parameters:
options
- the options to use- Returns:
- the client
-
createNetClient
default NetClient createNetClient()
Create a TCP/SSL client using default options- Returns:
- the client
-
createHttpServer
HttpServer createHttpServer(HttpServerOptions options)
Create an HTTP/HTTPS server using the specified options- Parameters:
options
- the options to use- Returns:
- the server
-
createHttpServer
default HttpServer createHttpServer()
Create an HTTP/HTTPS server using default options- Returns:
- the server
-
createWebSocketClient
default WebSocketClient createWebSocketClient()
Create a WebSocket client using default options- Returns:
- the client
-
createWebSocketClient
WebSocketClient createWebSocketClient(WebSocketClientOptions options)
Create a WebSocket client using the specified options- Parameters:
options
- the options to use- Returns:
- the client
-
httpClientBuilder
HttpClientBuilder httpClientBuilder()
Provide a builder forHttpClient
, it can be used to configure advanced HTTP client settings like a redirect handler or a connection handler.Example usage:
HttpClient client = vertx.httpClientBuilder().with(options).withConnectHandler(conn -> ...).build()
-
createHttpClient
default HttpClientAgent createHttpClient(HttpClientOptions clientOptions, PoolOptions poolOptions)
Create a HTTP/HTTPS client using the specified client and pool options- Parameters:
clientOptions
- the client options to usepoolOptions
- the pool options to use- Returns:
- the client
-
createHttpClient
default HttpClientAgent createHttpClient(HttpClientOptions clientOptions)
Create a HTTP/HTTPS client using the specified client options- Parameters:
clientOptions
- the options to use- Returns:
- the client
-
createHttpClient
default HttpClientAgent createHttpClient(PoolOptions poolOptions)
Create a HTTP/HTTPS client using the specified pool options- Parameters:
poolOptions
- the pool options to use- Returns:
- the client
-
createHttpClient
default HttpClientAgent createHttpClient()
Create a HTTP/HTTPS client using default options- Returns:
- the client
-
createDatagramSocket
DatagramSocket createDatagramSocket(DatagramSocketOptions options)
Create a datagram socket using the specified options- Parameters:
options
- the options to use- Returns:
- the socket
-
createDatagramSocket
default DatagramSocket createDatagramSocket()
Create a datagram socket using default options- Returns:
- the socket
-
fileSystem
FileSystem fileSystem()
Get the filesystem object. There is a single instance of FileSystem per Vertx instance.- Returns:
- the filesystem object
-
eventBus
EventBus eventBus()
Get the event bus object. There is a single instance of EventBus per Vertx instance.- Returns:
- the event bus object
-
createDnsClient
DnsClient createDnsClient(int port, String host)
Create a DNS client to connect to a DNS server at the specified host and port, with the default query timeout (5 seconds)- Parameters:
port
- the porthost
- the host- Returns:
- the DNS client
-
createDnsClient
DnsClient createDnsClient()
Create a DNS client to connect to the DNS server configured byVertxOptions.getAddressResolverOptions()
DNS client takes the first configured resolver address provided by
DnsAddressResolverProvider.nameServerAddresses()
}- Returns:
- the DNS client
-
createDnsClient
DnsClient createDnsClient(DnsClientOptions options)
Create a DNS client to connect to a DNS server- Parameters:
options
- the client options- Returns:
- the DNS client
-
sharedData
SharedData sharedData()
Get the shared data object. There is a single instance of SharedData per Vertx instance.- Returns:
- the shared data object
-
timer
default Timer timer(long delay)
Liketimer(long, TimeUnit)
with a unit in millis.
-
timer
default Timer timer(long delay, TimeUnit unit)
Create a timer task configured with the specifieddelay
, when the timeout fires the timer future is succeeded, when the timeout is cancelled the timer future is failed with aCancellationException
instance.- Parameters:
delay
- the delayunit
- the delay unit- Returns:
- the timer object
-
setTimer
long setTimer(long delay, Handler<Long> handler)
Set a one-shot timer to fire afterdelay
milliseconds, at which pointhandler
will be called with the id of the timer.- Parameters:
delay
- the delay in milliseconds, after which the timer will firehandler
- the handler that will be called with the timer ID when the timer fires- Returns:
- the unique ID of the timer
-
setPeriodic
default long setPeriodic(long delay, Handler<Long> handler)
Set a periodic timer to fire everydelay
milliseconds, at which pointhandler
will be called with the id of the timer.- Parameters:
delay
- the delay in milliseconds, after which the timer will firehandler
- the handler that will be called with the timer ID when the timer fires- Returns:
- the unique ID of the timer
-
setPeriodic
long setPeriodic(long initialDelay, long delay, Handler<Long> handler)
Set a periodic timer to fire everydelay
milliseconds with initial delay, at which pointhandler
will be called with the id of the timer.- Parameters:
initialDelay
- the initial delay in millisecondsdelay
- the delay in milliseconds, after which the timer will firehandler
- the handler that will be called with the timer ID when the timer fires- Returns:
- the unique ID of the timer
-
cancelTimer
boolean cancelTimer(long id)
Cancels the timer with the specifiedid
.- Parameters:
id
- The id of the timer to cancel- Returns:
- true if the timer was successfully cancelled, or false if the timer does not exist.
-
runOnContext
void runOnContext(Handler<Void> action)
Puts the handler on the event queue for the current context so it will be run asynchronously ASAP after all preceeding events have been handled.- Parameters:
action
- - a handler representing the action to execute
-
close
Future<Void> close()
Stop the Vertx instance and release any resources held by it.The instance cannot be used after it has been closed.
The actual close is asynchronous and may not complete until after the call has returned.
- Returns:
- a future completed with the result
-
deployVerticle
default Future<String> deployVerticle(Deployable verticle)
Deploy a verticle instance that you have created yourself.Vert.x will assign the verticle a context and start the verticle.
The actual deploy happens asynchronously and may not complete until after the call has returned.
If the deployment is successful the result will contain a string representing the unique deployment ID of the deployment.
This deployment ID can subsequently be used to undeploy the verticle.
- Parameters:
verticle
- the verticle instance to deploy.- Returns:
- a future completed with the result
-
deployVerticle
default Future<String> deployVerticle(Deployable verticle, DeploymentOptions options)
LikedeployVerticle(Deployable)
butDeploymentOptions
are provided to configure the deployment.- Parameters:
verticle
- the verticle instance to deployoptions
- the deployment options.- Returns:
- a future completed with the result
-
deployVerticle
Future<String> deployVerticle(java.util.function.Supplier<? extends Deployable> supplier, DeploymentOptions options)
LikedeployVerticle(Deployable, DeploymentOptions)
butDeployable
instance is created by invoking theverticleSupplier
.The supplier will be invoked as many times as
DeploymentOptions.getInstances()
. It must not return the same instance twice.Note that the supplier will be invoked on the caller thread.
- Returns:
- a future completed with the result
-
deployVerticle
Future<String> deployVerticle(Class<? extends Deployable> verticleClass, DeploymentOptions options)
LikedeployVerticle(Deployable, DeploymentOptions)
butDeployable
instance is created by invoking the default constructor ofverticleClass
.- Returns:
- a future completed with the result
-
deployVerticle
default Future<String> deployVerticle(String name)
Deploy a verticle instance given a name.Given the name, Vert.x selects a
VerticleFactory
instance to use to instantiate the verticle.For the rules on how factories are selected please consult the user manual.
If the deployment is successful the result will contain a String representing the unique deployment ID of the deployment.
This deployment ID can subsequently be used to undeploy the verticle.
- Parameters:
name
- the name.- Returns:
- a future completed with the result
-
deployVerticle
Future<String> deployVerticle(String name, DeploymentOptions options)
LikedeployVerticle(Deployable)
butDeploymentOptions
are provided to configure the deployment.- Parameters:
name
- the nameoptions
- the deployment options.- Returns:
- a future completed with the result
-
undeploy
Future<Void> undeploy(String deploymentID)
Undeploy a verticle deployment.The actual undeployment happens asynchronously and may not complete until after the method has returned.
- Parameters:
deploymentID
- the deployment ID- Returns:
- a future completed with the result
-
deploymentIDs
Set<String> deploymentIDs()
Return a Set of deployment IDs for the currently deployed deploymentIDs.- Returns:
- Set of deployment IDs
-
registerVerticleFactory
void registerVerticleFactory(VerticleFactory factory)
Register aVerticleFactory
that can be used for deploying Verticles based on an identifier.- Parameters:
factory
- the factory to register
-
unregisterVerticleFactory
void unregisterVerticleFactory(VerticleFactory factory)
Unregister aVerticleFactory
- Parameters:
factory
- the factory to unregister
-
verticleFactories
Set<VerticleFactory> verticleFactories()
Return the Set of currently registered verticle factories.- Returns:
- the set of verticle factories
-
isClustered
boolean isClustered()
Is this Vert.x instance clustered?- Returns:
- true if clustered
-
executeBlocking
default <T> Future<T> executeBlocking(Callable<T> blockingCodeHandler, boolean ordered)
Safely execute some blocking code.Executes the blocking code in the handler
blockingCodeHandler
using a thread from the worker pool.The returned future will be completed with the result on the original context (i.e. on the original event loop of the caller) or failed when the handler throws an exception.
In the
blockingCodeHandler
the current context remains the original context and therefore any task scheduled in theblockingCodeHandler
will be executed on this context and not on the worker thread.The blocking code should block for a reasonable amount of time (i.e no more than a few seconds). Long blocking operations or polling operations (i.e a thread that spin in a loop polling events in a blocking fashion) are precluded.
When the blocking operation lasts more than the 10 seconds, a message will be printed on the console by the blocked thread checker.
Long blocking operations should use a dedicated thread managed by the application, which can interact with verticles using the event-bus or
Context.runOnContext(Handler)
- Type Parameters:
T
- the type of the result- Parameters:
blockingCodeHandler
- handler representing the blocking code to runordered
- if true then if executeBlocking is called several times on the same context, the executions for that context will be executed serially, not in parallel. if false then they will be no ordering guarantees- Returns:
- a future completed when the blocking code is complete
-
executeBlocking
default <T> Future<T> executeBlocking(Callable<T> blockingCodeHandler)
LikeexecuteBlocking(Callable, boolean)
called with ordered = true.
-
createSharedWorkerExecutor
WorkerExecutor createSharedWorkerExecutor(String name)
LikecreateSharedWorkerExecutor(String, int)
but with theVertxOptions.setWorkerPoolSize(int)
poolSize
.
-
createSharedWorkerExecutor
WorkerExecutor createSharedWorkerExecutor(String name, int poolSize)
LikecreateSharedWorkerExecutor(String, int, long)
but with theVertxOptions.setMaxWorkerExecuteTime(long)
maxExecuteTime
.
-
createSharedWorkerExecutor
WorkerExecutor createSharedWorkerExecutor(String name, int poolSize, long maxExecuteTime)
LikecreateSharedWorkerExecutor(String, int, long, TimeUnit)
but with theVertxOptions.setMaxWorkerExecuteTimeUnit(TimeUnit)
maxExecuteTimeUnit
.
-
createSharedWorkerExecutor
WorkerExecutor createSharedWorkerExecutor(String name, int poolSize, long maxExecuteTime, TimeUnit maxExecuteTimeUnit)
Create a named worker executor, the executor should be closed when it's not needed anymore to release resources. This method can be called mutiple times with the samename
. Executors with the same name will share the same worker pool. The worker pool size , max execute time and unit of max execute time are set when the worker pool is created and won't change after.The worker pool is released when all the
WorkerExecutor
sharing the same name are closed.- Parameters:
name
- the name of the worker executorpoolSize
- the size of the poolmaxExecuteTime
- the value of max worker execute timemaxExecuteTimeUnit
- the value of unit of max worker execute time- Returns:
- the named worker executor
-
isNativeTransportEnabled
boolean isNativeTransportEnabled()
- Returns:
- whether the native transport is used
-
unavailableNativeTransportCause
Throwable unavailableNativeTransportCause()
- Returns:
- the error (if any) that cause the unavailability of native transport when
isNativeTransportEnabled()
returnsfalse
.
-
exceptionHandler
Vertx exceptionHandler(Handler<Throwable> handler)
Set a default exception handler forContext
, set onContext.exceptionHandler(Handler)
at creation.- Parameters:
handler
- the exception handler- Returns:
- a reference to this, so the API can be used fluently
-
-