我有一个在Windows Server 2008上运行的Node.js应用程序。我在这里面临一个奇怪的问题。
我的应用会执行多个异步任务。将数据发送到socket.io,MySQL,HTTP连接,TCP连接等。
我的节点应用程序变得没有响应,尤其是在socket.io端,并且只有在控制台上按任何键后才会再次开始响应。这是一个已知的问题?有没有围绕这种行为绕过?
注意:我正在大量使用console.log来跟踪当前操作和进程中的错误。
答案 0 :(得分:3)
我做了一些背景调查,得出了以下结论。
Windows Server 2008上的Powershell控制台在单击时会进入“暂停”模式。如果您点击其他地方,它会再次发布。 http://www.vistax64.com/powershell/112032-script-pauses-when-you-click-powershell-text-window.html
如果您注意到,console.log
是异步的。但是console.warn
和console.error
正在阻止。这些不是异步的。
控制台暂停可能会阻止Node.js操作的部分/大部分内容。 ESP。因为Socket.io在默认调试级别将报告的不只是console.log
。
答案 1 :(得分:0)
其他人建议的解决方案对我不起作用,但使用 Cmder 启动脚本解决了它。显然是控制台应用程序问题,而不是 node.js 问题。