postgreTimeOut在线程中,带有来自io.vertx.ext.sql.SQLClient;的查询



嗯,我是Vert.x的新开发人员…所以,我在数据库连接的实现方面遇到了问题。

在一个或多个查询中,我有很多像160K记录这样的信息,这些记录会在一个JSON对象中抛出GraphQL;所以…当查询时间超过30000(ms(时。。。控制台上写着:

线程[vert.x-eventloop-hread-1,5,main]已被阻止5026毫秒,时间限制为2000毫秒io.vertx.core.VertxException:线程被阻止

因此,我对此进行了调查,在完成或获取所有记录之前,我找不到解决、最大化或为查询设置更大值的方法。

这个问题实际上在官方文档中有详细介绍。

您不能直接从事件循环调用阻塞操作,因为这将阻止它做任何其他有用的工作

这就是您目前正在做的事情-调用阻塞操作。

运行阻塞代码的另一种方法是使用worker vertical aworker vertical总是使用worker池中的线程执行。

在垂直工作者中运行您的"慢速"代码。使用EventBus在EventLoop垂直公司和员工之间进行通信。只要您在同一个虚拟机中,通过EventBus传递即使是大型集合也并没有开销。

相关内容

  • 没有找到相关文章

最新更新