Puma和Byebug / pry在并发请求期间导致终端损坏

问题描述

更新:看起来这是Byebug的长期存在的问题:https://github.com/deivid-rodriguez/byebug/issues/487

当我在集群模式下使用Puma与多个工作人员一起使用Rails应用程序并且该应用程序正在处理并发请求时,byebugpry会在终端上引起奇怪的行为。例如,我将尝试在断点处输入quit,但是它将不确定地以qituiqt等形式出现。多次键入每个单独的字符(例如quit),直到我得到所需的命令为止。

但是,即使我设法输入了正确的命令,它仍然会抱怨,即使正确地标有正确的命令,在按Enter键之后,qitui等也不存在。屏幕。如果我再按一次Enter键,即使提示中不再等待任何命令,它似乎仍在运行正确的命令(因为我已经第一次按Enter键了)。即使这样,我只能让它执行一次命令。之后,断点根本不起作用,我必须重新启动服务器。

在开发中以单一模式使用Puma时,我从来没有这个问题,但是在我的用例中,我必须在开发中使用多个工作程序。我在一个单独的Node进程中运行SSR,该进程在SSR期间将请求发出回Rails服务器。在单模式下,只有一个进程,SSR请求超时,因为Puma仍在等待浏览器请求,但是直到SSR完成,浏览器请求才能完成。在有多个工作进程的情况下,一个进程处理浏览器请求,而另一个进程处理SSR请求。

有人知道为什么会这样吗?请注意,在处理并发请求时,将byebugpry与Unicorn和Passenger一起使用时,我也遇到了类似的问题。似乎是比任何一个图书馆更深的问题。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)