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

2023-11-26

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

intellij-debug-traces


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

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

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 IntelliJ IDEA 调试 Spring WebFlux / Reactor 应用程序 的相关文章

随机推荐

  • 在 .js 文件中调用 URL 参数

    我正在 HTML 文件中调用 js 文件 在 js 文件的 URL 上 我想包含一个可供 js 文件内的代码访问的参数 例如 我希望能够在 jQuery 的帮助下将 ID 值传递给 jquery widget js 文件中的函数 这是怎么做
  • Groovy 地图点键嵌套地图

    我有一个带有点表示法键的地图 但我需要它作为嵌套地图 test key one value1 text key two value2 现在结果应该是 test key one value1 two value2 这是我的代码想法 def e
  • C# ListView 项目图像

    如何使用 foreach 语句将图像 指定图像 添加到 listview 中 例如 foreach Video entry in videoFeed Entries listview1 items add entry listview1 i
  • Sprite Kit 中可重用的多线程实现

    我正在开发 Sprite Kit 游戏 我需要做一些多线程来保持健康的 fps 更新时 我调用一个函数来创建大量 UIBezierPaths 并使用 C 静态库合并它们 如果我有超过 10 个形状 帧速率会急剧下降 因此我决定尝试一下 GC
  • 更好的地图构造器

    有没有更简化的方法来执行以下操作 Map
  • 我在哪里可以了解经过验证的共享加密密钥的方法?

    假设一个群组想要加密一些信息 然后以需要群组共识的方式在群组成员之间共享加密密钥来解密该信息 我对各种场景感兴趣 其中共识的广度范围从一致到绝对多数 有用的技术可以应用于对称密钥 私钥或两者 我可以尝试推出自己的方法 我相信许多 SO 成员
  • KCFinder '您无权列出文件。'

    我在 ckeditor 中集成 KCFinder 时遇到问题 我的ckeditor版本是4 0 另一个 KCFinder版本 是2 52 dev 您好 像这样配置 ckeditor 的 config js CKEDITOR config b
  • 如何在Shapely中获得线上等距点

    我试图 大致 将一条线的点均匀地间隔到预定义的距离 距离之间有一定的公差是可以的 但最好尽可能接近 我知道我可以手动迭代线路中的每个点并检查 p1 与 p2 的距离 并根据需要添加更多点 但我想知道是否有人知道是否有办法用 shapely
  • 如何更改 matlab 颜色条缩放比例

    我很难理解如何更改 Matlab 2015b 中颜色条的范围 默认情况下 它的范围从 0 到 1 我设法使用以下方法更改标签 c colorbar c Limits 0 180 the range that I want 问题是当我这样做时
  • 在 CSS/SVG 中是否有一种普遍支持的方法来制作倾斜的“磨砂玻璃”效果?

    我正在寻找制作一个网站醒目页面 该页面将有一个背景 该背景将在左侧被一个倾斜的 div 截断 例如与水平方向保持 110 度 或同等程度 继续阅读 该 div 会模糊其背后的背景 并允许在其上放置内容 例如文本 请参阅YouTube 品牌资
  • OSGI OBR 存储库托管?

    有谁知道有哪些服务可以提供 OBR 来托管我自己的捆绑包 类似于 github 但用于捆绑包 如果没有 有人创建过自己的 OBR 服务器吗 这有多难 编辑 我找到了一个解决方案Nexus Pro 但对于凡人来说似乎太贵了 因为专业版的价格无
  • 在 javascript 中加密并使用 AES 算法在 C# 中解密

    我尝试使用 AES 库进行角度加密AES 我使用以下方法加密了字符串CryptoJS AES encrypt AES 方法 这是我的代码 var txtloginKod Some String var key CryptoJS enc Ut
  • GCC 无法使用 init-capture 捕获指向模板类型的“this”指针

    模板类可以捕获自己的thislambda 中的指针 template
  • 如何获取 Git 中 master 分支的默认值?

    由于简短 GitHub 建议使用main代替master对于默认分支 我们怎样才能得到这个名字 因为编写有弹性的 Git 别名 如何获取 Git 中 master 分支的默认值 我已经搜索过 但没有任何解决方案git 如何获取默认分支 对我
  • 如何实现 getline() 的超时? [复制]

    这个问题在这里已经有答案了 我想从命令行读取一个字符串getline 在c 中 为此我想添加一个计时器5秒 如果没有读取到字符串 则程序将终止 我怎样才能做到这一点 好的 等等5秒 和terminate如果没有输入 include
  • 为什么浏览器不会因语法错误抛出异常?

    我不小心写了一个错误的 JavaScript 语法 我是这么认为的 code is var temp temp a 34 height 34 should fail here temp b 56 jsfiddle 语法是否正确 Thanks
  • 如何修复 PHP 中的“标头已发送”错误

    这个问题的答案是社区努力 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 运行我的脚本时 我收到几个如下错误 警告 无法修改标头信息 标头已由 输出从 some file php 12 开始 in 一些 文件 php on line
  • 有没有一种方法可以让我在标签内使用 Spans 并使其合理?

    我正在使用此代码向标签内的文本添加一些颜色
  • 计算 Pi Java 程序

    我正在参加我的第一堂 Java 编程课程 这是我的第一个课程项目 我对如何处理它感到很困惑 任何帮助或纠正将不胜感激 您可以使用以下级数来近似常数 PI 的值 PI 4 1 1 3 1 5 1 7 1 9 1 11 1 i 1 2i 1 提
  • 使用 IntelliJ IDEA 调试 Spring WebFlux / Reactor 应用程序

    我正在使用 IntelliJ IDEA 创建 Spring WebFlux Reactor 应用程序 IDEA的调试器显示了许多无用的行 例如MonoDefer MonoFlatMap等 有没有办法轻松跟踪堆栈 不幸的是 在异步世界中 堆栈