首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vert.x工作线程阻塞

Vert.x工作线程阻塞
EN

Stack Overflow用户
提问于 2016-05-05 19:28:29
回答 2查看 2.9K关注 0票数 3

我有一个vert.x Standard Verticle,它解析HttpRequest并准备JsonObject,然后我通过eventbus发送JSONObject。在另一个Worker verticle中,事件被消费,它将启动执行(包括对Penthao Data Integration Java API调用),它阻塞了大约30分钟才完成".kjb“文件执行的API.It。但是vert.x一直在警告工作线程块,所以我的问题是,在vert.x中处理这种情况的最佳实践是什么。任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

发布于 2016-05-05 20:05:12

根据vertx doc的说法,所有阻塞操作都需要在代码中执行

代码语言:javascript
复制
vertx.executeBlocking(future -> {
  // Call some blocking API that takes a significant amount of time to return
  String result = someAPI.blockingMethod("hello");
  future.complete(result);
}, res -> {
  System.out.println("The result is: " + res.result());
});

所以这是所有阻塞任务的最佳实践。

票数 4
EN

Stack Overflow用户

发布于 2017-02-21 06:45:56

您还可以将您的verticle部署为worker。

这样:

代码语言:javascript
复制
vertx.deployVerticle(yourVerticleInstance, new DeploymentOptions().setWorker(true));
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37049432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档