node.js - Child_process fork - 间歇性读取错误

标签 node.js child-process

我正在尝试使用 child_process.fork 在 Node 中创建一个缓存服务器。

基本思想是,有一个调度服务器将根据传入的 URI 生成 fork 的“缓存服务器”。一旦缓存服务器被 fork ,客户端套接字就会通过 fork 的 .send 方法发送到相应的 fork 缓存服务器。

cacheServers[this.key] = require('child_process').fork(‘CacheServer.js’,[this.key]);

...然后

cacheServers[subKey].send(“client”,clientSocket);

有时将客户端(及其套接字)发送到 fork 工作正常,有时会抛出错误:

TypeError: Cannot set property 'onread' of null
at ChildProcess.handleConversion.net.Socket.send (child_process.js:134:21)
at ChildProcess.target.send (child_process.js:439:52)
at Server.server.Subscribe(/home/devuser/CachingServer/CachingServer.js:104:23)
at ChildProcess.<anonymous> (/home/devuser/CachingServer/CachingServer.js:145:10)
at ChildProcess.EventEmitter.emit (events.js:98:17)
at handleMessage (child_process.js:318:10)
at Pipe.channel.onread (child_process.js:345:11)

我发送到 fork 的客户端似乎没有区别。

有人有任何线索吗?

最佳答案

看起来它已在 v0.11.13 和 v0.10.27 中修复?

Issue #5469 , Fix , Test

关于node.js - Child_process fork - 间歇性读取错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24318019/

相关文章:

multithreading - NodeJS 批处理多处理 - 池中的子进程(或多线程)

javascript - Node.js process.exit()无法完全退出,并且存在异步fs.writeFile的危险

javascript - Dialogflow + 外部 API + Google Cloud Functions *不含* Firebase : how to return fulfillment response?

javascript - 使div溢出-y从底部开始滚动

node.js - nodejs child_process.spawn msdeploy.exe,目标站点中有空格

在C中创建两个子进程并一个接一个地执行它们

javascript - NodeJS如何检查子进程是否创建成功

node.js - 构建 :Cannot find type definition file for 'node'

c - 写入文件描述符

node.js - node.js 安全/转义中的 child_process 生成