- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在关注 Jenkov's tutorial在顶点上。这里我有两个文件:
MyVerticle.java:
import io.vertx.core.AbstractVerticle;
import io.vertx.core.Future;
public class MyVerticle extends AbstractVerticle {
@Override
public void start(Future<Void> startFuture) {
System.out.println("MyVerticle started!");
}
@Override
public void stop(Future stopFuture) throws Exception {
System.out.println("MyVerticle stopped!");
}
}
和 VertxVerticleMain.java:
import io.vertx.core.Vertx;
public class VertxVerticleMain {
public static void main(String[] args) {
Vertx vertx = Vertx.vertx();
vertx.deployVerticle(new MyVerticle());
}
}
运行 VertxVerticleMain.java
后,我在 Eclipse 的控制台中看到了 "MyVerticle started!"
但不知道如何调用 stop
MyVerticle
.
Jenkov 说当 Vert.x 关闭并且您的 Verticle 需要停止时调用 stop() 方法。我该如何关闭我的 Vert.x 并停止这个 Verticle?我想在控制台中看到 MyVerticle stopped!
。
最佳答案
来自 the Vert.x docs :
Vert.x calls this method when un-deploying the instance. You do not call it yourself.
如果您从 main 方法运行 Vert.x 并终止 JVM 进程(例如,通过单击 Eclipse 中的“停止”按钮),Vert.x 可能不会收到取消部署 Verticles 或 JVM 的信号在 Vert.x 有时间取消部署 Verticle 之前终止。
您可以做很多事情来确保 Verticle 将被取消部署并调用 stop() 方法:
您可以通过获取 deploymentId 列表并为所有 ID 调用取消部署,以编程方式取消部署已部署的 Verticle:
vertx.deploymentIDs().forEach(vertx::undeploy);
您可以通过编程方式告诉 Vert.x 停止:
vertx.close();
您可以添加一个关闭 Hook 以确保上述选项之一在 JVM 终止时执行:
Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() {
vertx.close();
}
});
您可以通过调用 Vert.x API 以编程方式取消部署 Verticle,或者只是停止 Java 进程,这会触发 Vert.x 进程停止。
顺便问一下,当运行 Verticle 的进程停止时,是否真的有必要始终调用 stop() 方法。您永远无法确定会发生这种情况;当进程被强制停止或杀死时,可能不会调用 stop() 方法。
关于java - 在 Eclipse 中停止 vertx verticle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36389308/
我是 Vertx 新手,我有一个疑问,不幸的是 stackoverflow 尚未解决。我有 2 个内核的 ubuntu 服务器,我想使用此代码。 @Override public void s
我正在尝试扩展一个应用程序,该应用程序对外部应用程序进行阻塞调用以获取一些数据(请求和响应顺序无关紧要) 因为,它是一个阻塞调用,如 vertx 文档中所述,我正在使用 worker verticle
我有一个简单的 Verticle,它从属性文件中读取配置并加载到 vertx 配置中。我已经编写了一个单元测试来测试这个 Verticle 的部署,测试失败的可能原因是该位置的属性文件不可用。 当我运
Vert.x 对于部署的 verticle 有任何开销吗?在不再需要它们后是否有理由取消部署它们? 请查看MyVerticle - 它的唯一目的是在应用程序启动时进行load,加载此Verticle之
我们尝试使用事件总线在 Verticle 之间建立通信。我们尝试了最简单的乒乓通信示例—— public class Sender extends AbstractVerticle { pub
我正在使用 Vert.x 3 框架/库。我编写了一个简单的 Verticle,它具有通过 Spring IoC 管理的对象依赖项。 这是 Verticle 片段 public class Bookma
下面的类是我的工作垂直体,我想在其中从名为 events-config 的 channel 上的事件总线接收消息时执行阻塞代码。 目标是无限期地生成和发布 json 消息,直到我在 events-co
我有一个 Vert.x 应用程序,其中包含多个 verticls,用于与不同的总线和数据库(mongo、redis、rabbit、kafka 和这样) 其中有一个 verticle 专门用于与外部 a
我们几天前开始使用 vert.x。阅读文档(面向 Java 开发人员的使用 Eclipse Vert.x 进行异步编程的温和指南 - https://vertx.io/docs/guide-for-j
所以这有点偷偷摸摸,它不会 100% 发生,但情况是这样的: 我创建了一个 JUnit 集成类,声明了一个 Rule 在上下文中运行,然后我从规则中提取了 vertx 对象。然后我将新的 vertic
假设我有一个类似这样的垂直体(故意简化以便更容易解释我的问题)。 public class ServiceVerticle extends AbstractVerticle { private
我使用 Vert.x 3 实现 websockets。 场景很简单:从客户端打开套接字,在顶点 Verticle Worker 上执行一些“阻塞”工作,并在完成响应后向客户端提供答案(通过打开的套接字
下面粘贴的是我的 javascript verticle 的代码,已成功部署。由于找不到调试js verticle的方法,所以我打印了routingContext的所有属性以供引用。我正在尝试获取请求
我对 Vertx 还很陌生,并且一直在我的应用程序中尝试使用 Vertx 3。到目前为止,它在某些场景中似乎确实有用。但我确实有一个问题想要得到全面的解答,因为文档和 Google 没有提供任何相关信
我们现在正在重构用 Vert.x 编写的消息应用程序。应用程序处理来自用户的传入消息。最初,它的实现是为了让单个 Verticle 实例监听事件总线中的单个队列并处理所有传入消息。 我们正在考虑重构它
所以我正在为 DOS 提示符开发老式 ASCII 游戏,你问值得我花时间吗?我想说的是,它是怀旧的。无论如何,自从我重新开始并重新学习如何直接访问屏幕内存以来,我一直享受着很多乐趣,直到最近我的游戏刷
我解释了我的问题,我有一个垂直体,我在其中定义了所有路线。我有简单的 java 类,其中包含我根据路线在 verticle 中调用的方法。例如,我的 downloadFile() 方法位于 MyFil
我正在为我的 Vert.x 应用程序实现测试,但我在让 Vert.x 以优雅的方式等待 Verticle 部署时遇到问题。这是我的@BeforeClass 方法: @BeforeClass p
这个问题可能看起来像一个喷子,但它实际上是关于 vert.x 如何管理并发的,因为 Verticle 本身在专用线程中运行。 让我们看看这个用 Java 编写的简单的 vert.x http 服务器:
我正在关注 Jenkov's tutorial在顶点上。这里我有两个文件: MyVerticle.java: import io.vertx.core.AbstractVerticle; import
我是一名优秀的程序员,十分优秀!