我正在尝试使用 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/