问题描述
我们正在使用以下代码
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 (将#修改为@)