有什么通用的方法来处理vertx线程阻塞问题

问题描述

我们正在使用以下代码

vertx.executeBlocking( future -> {
    // do something that might take long time for some situation
    future.complete();
},result -> {
    // handle the result
});

我们注意到在某些情况下,线程阻塞警告消息会打印出来。 我知道以下情况将开始打印线程阻止消息。

如果事件循环被阻止超过2秒,工作线程被阻止超过60秒。

但是,我们可以配置将时间限制设置为很高的数字,尽管这不是我要问这个问题的目的。

如果有任何阻碍vertx的处理,无论Http verticle还是worker verticle的事实,vertx将在上述间隔之后开始通知日志。

根据有关此主题的一些可用指针,我知道vertx不建议使用事件循环线程或工作线程来处理任何长时间运行的操作。 建议使用您自己的应用程序线程来执行相同的操作。

在现实生活中,不能保证工人垂直线内的所有操作或执行阻塞都会及时进行。

因此,由于几乎所有基于vertx的应用程序都存在此问题,因此,我试图寻找一种概括该解决方方法的答案。 请分享您的想法。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)