Back
Close

Scheduling tasks with Eclipse Vert.x

cescoffier
6,853 views

One-shot Timers

The first type of timer is used to create a delayed action. An one-shot timer calls a handler after a certain delay, expressed in milliseconds. A Handler being a method invoked by Vert.x when something interesting happens - here the execution trigger.

One-shot timer
package io.vertx.playground;
import io.vertx.core.Vertx;
public class TimerExample {
public static void main(String... args) {
Vertx vertx = Vertx.vertx();
System.out.println("Starting, waiting for greetings");
vertx.setTimer(5000, l -> {
System.out.println("Hello");
});
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

The return value is a unique timer id which can later be used to cancel the timer. The handler is also passed the timer id.

Passing milliseconds can be inconvenient for long durations. Fortunately, you can use TimeUnit:

Using TimeUnit
package io.vertx.playground;
import io.vertx.core.Vertx;
import java.util.concurrent.TimeUnit;
public class TimerWithDurationExample {
public static void main(String... args) {
Vertx vertx = Vertx.vertx();
System.out.println("Starting, waiting for greetings");
vertx.setTimer(TimeUnit.SECONDS.toMillis(5), l -> {
System.out.println("Hello");
});
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

To give another example, you can compute the number of milliseconds in a hour using:

TimeUnit.HOURS.toMillis(1)
Create your playground on Tech.io
This playground was created on Tech.io, our hands-on, knowledge-sharing platform for developers.
Go to tech.io
codingame x discord
Join the CodinGame community on Discord to chat about puzzle contributions, challenges, streams, blog articles - all that good stuff!
JOIN US ON DISCORD
Online Participants