sun*_*one 7 spring intellij-idea project-reactor
我正在使用 IntelliJ IDEA 创建一个 Spring WebFlux/Reactor 应用程序。IDEA 的调试器显示了很多无用的行,如 MonoDefer、MonoFlatMap 等。有没有办法轻松跟踪堆栈?
在异步世界中,不幸的是堆栈跟踪失去了很多意义。在这里,您会看到一个堆栈,其中显示了构成整个反应链的运算符(包括 Spring 框架在您在控制器中定义的那些运算符之上使用的运算符)。唯一的问题是它显示了链被触发(或“订阅”)的位置,因为执行是惰性的,这是运行时唯一可见的路径......
对于正确的错误和堆栈跟踪.checkpoint(),您可以在链中显式使用一个运算符,以捕获有关“程序集”(在代码中声明的运算符链)的信息,以提供更多上下文。然后将其显示为异常堆栈 straces 的一部分,作为被抑制的异常。
我们使用 IntelliJ 的新异步调试器功能也有点困难,因为执行模型没有提供一对固定的“调度站点与执行站点”:Scheduler用于在序列中间切换线程的抽象由运算符喜欢publishOn并subscribeOn暗示任意“执行站点”(任意ExecutorService,滚动您自己的线程池, a Thread,...)。
我鼓励您阅读http://projectreactor.io/docs/core/release/reference/#debugging官方参考文档中的堆栈跟踪和调试
| 归档时间: |
|
| 查看次数: |
5568 次 |
| 最近记录: |