gpt4 book ai didi

spring - 使用 IntelliJ IDEA 调试 Spring WebFlux/Reactor 应用程序

转载 作者:行者123 更新时间:2023-12-03 21:49:13 26 4
gpt4 key购买 nike

我正在使用 IntelliJ IDEA 创建一个 Spring WebFlux/Reactor 应用程序。 IDEA 的调试器显示了很多无用的行,如 MonoDefer、MonoFlatMap 等。有没有办法轻松跟踪堆栈?

intellij-debug-traces

最佳答案

在异步世界中,不幸的是堆栈跟踪失去了很多意义。在这里,您会看到一个堆栈,其中显示了构成整个 react 链的运算符(包括 Spring 框架在您在 Controller 中定义的那些运算符之上使用的运算符)。唯一的问题是它显示了链被触发(或“订阅”)的位置,因为执行是惰性的,这是运行时唯一可见的路径......

对于正确的错误和堆栈跟踪,有一个 .checkpoint()您可以在链中显式使用的运算符,以捕获有关“程序集”(在代码中声明运算符链的位置)的信息,以提供更多上下文。然后将其显示为异常堆栈 straces 的一部分,作为抑制异常。

我们使用 IntelliJ 的新异步调试器功能也有点困难,因为执行模型没有提供一对固定的“调度站点与执行站点”:Scheduler用于通过像 publishOn 这样的操作符在序列中间切换线程的抽象和 subscribeOn意味着任意的“执行站点”(任意的 ExecutorService ,一个滚动你自己的线程池,一个 Thread ,...)。

我鼓励您阅读 http://projectreactor.io/docs/core/release/reference/#debugging 上的官方引用文档中的堆栈跟踪和调试信息。

关于spring - 使用 IntelliJ IDEA 调试 Spring WebFlux/Reactor 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51100118/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com