Vert.x计时器

时间:2020-01-09 10:47:21  来源:igfitidea点击:

Vert.x有两种类型的计时器,可用于对代码的执行进行计时。第一种计时器类型是一次性计时器,该计时器在经过一定时间后会触发事件。第二个计时器是一个周期计时器,只要经过指定时间间隔,它就会保持触发事件。本教程将在以下各节中介绍这两种Vert.x计时器。

一次性计时器

Vert.x一次性计时器是在指定的延迟后触发一次的计时器。这是创建一次性计时器的方法:

long timerID = vertx.setTimer(3000, new Handler<Long>() {

    @Override
    public void handle(Long aLong) {
        System.out.println("Timer fired");
    }
});

setTimer()方法以毫秒为单位的时间间隔作为第一个参数,而Handler实现则作为第二个参数。时间间隔过去后,将调用Handler的handle()方法。

setTimer()方法返回一个计时器ID。该计时器ID也作为参数传递给Handler的handle()方法。如果我们想稍后取消计时器,也将使用此计时器ID。

定期计时器

Vert.x定期计时器是每次经过指定时间段时都会触发的计时器。这是创建定期计时器的方法:

long timerID = vertx.setPeriodic(3000, new Handler<Long>() {

    @Override
    public void handle(Long aLong) {
        System.out.println("Timer 1 fired: " + aLong);
    }
});

setPeriodic()方法以毫秒为单位的时间间隔作为第一个参数,而Handler实现则作为第二个参数。每当时间间隔过去时,都会调用Handler的handle()方法。

setPeriodic()返回计时器ID。每当调用计时器ID时,该计时器ID也会传递给Handler的handle()方法。如果我们想稍后取消计时器,也将使用计时器ID。

取消计时器

我们可以使用" Vertx"对象的" cancelTimer()"方法取消一次性或者定期计时器。 cancel()方法可以取消一次性计时器和定期计时器。这是取消Vertx计时器的示例:

vertx.cancelTimer(timerID);