
[英]handle multiple infinite tasks in a single thread? P.S run one task at a time and control its task behavior(i.e starting/stoping task) from outside
[英]Is there any way to set initial delay (i.e 30 sec) in Vertx and then run task periodically with different time delay (i.e 1 sec)
我正在使用 vert.x 框架编写一个 Java 应用程序。 我有一个用例,我需要等待 30 秒才能安排任务 1 秒间隔。
我正在使用 vertx.setPeriodic 每 1 秒执行一次任务。 在这里我找不到顶点的任何实用程序,它允许我最初等待 30 秒,然后每 1 秒执行一次任务。 我可以使用 Thread.sleep(30000),但它会使我的代码同步。 相反,我正在寻找一个顶点 function,它允许我以异步方式实现相同的行为。
vertx.setPeriodic(1000, timerId -> { ... my task logic ... });
我尝试使用 vertx.setPeriodic,但它没有允许初始延迟的重载方法。
结合vertx.setTimer(long delay, Handler<Long> handler)
这应该很简单
您的代码如下所示:
vertx.setTimer(30000, timerId -> {
vertx.setPeriodic(1000, periodicId -> { ... my task logic ... });
});
编辑:在最新版本的 Vert.x 中,可以配置setPeriodic
初始延迟:
vertx.setPeriodic(30000, 1000, timerId -> {
// My task
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.