您自相矛盾 : “ 默认情况下” 和“ 强制” 是不兼容的 。 您可以使用任何您想要的 HTTP 库。 核心 < code> http < /code> 模块可能被视为“ 默认 ”, 但没有什么能阻止您使用另一个 。
JavaScript 是一种单行语言, 而Node.js 是一个 JavaScript 运行时间, 而不是一个像其他许多用户一样生成线条响应的网络服务器。 您仍然可以按每个响应做线条, 在节点上建起一些项目可以这样做, 但是您失去了节点的大部分好处。 如果您正在对网络请求进行计算- 重件( 您有客户愿意等待您这样做 ), 您应该通过众多可用解决方案之一( 网络工人、 线条- a-go-go、 儿童进程等) 旋转一条单独的线 。
诺德. js 的作者假设您正在撰写一个网络服务器。 您在网络服务器上所做的大部分工作基本上都是 IO, 无论是 IO 包含文件系统、 数据库, 还是信息总线, 用于排队计算密集型任务 。
审视你的问题,你似乎对Node.js是什么有基本误解, 如果你试图把它与 Python 和 WSGI. Node.js 整合起来, 是为了写网络服务器, 所以试图使用它... 和 Python 一起? 在 Python 内部? (我不知道你到底想做什么) 没有什么意义。
如果您的任务不仅仅是 I/O 约束, 您也许不应该在与您的网络服务器相同的框中主持这些任务。 因此, 3 中简要提及的信息总线处理方法 。 但是, 如果您决心这样做, 并且确定这些任务会占用所有 CPU, 您应该确定这些任务有多频繁。 如果这些任务在网络上都要求, 您不应该使用 Node. js; 您正在放弃它最基本的优势, 留下的只是次要的( 如周围生长的生态系统 ) 。 如果它们很罕见, 那么您应该通过2 中的许多方法把它们分开, 并用不同的线条把它们旋转出来 。
相关:
时间:2012-05-26 19:38:10
问题回答
如果您是一个以 Python 为基础的商店, 您也可以考虑 < a href=" http:// twistmatrix. com" rel = “ nofollow” > Twisted a>, 这是一个以 Python 书写的由事件驱动的框架 。 Twisted 也可以将屏蔽工作拖长到线上 。
最重要的是,你首先定义你需要什么,你的问题是什么。不要仅仅因为每个人都在谈论这个而跳上新的花哨。看看你的需要,并使用能解决它们的东西。
我看到有一个节点.js模块,以WSGI为模式:Strata
此外,您还可以向儿童进程卸载密集计算: