请教一个关于http请求中返回信息的问题
发布于 4 年前 作者 vip1232 2160 次浏览 最后一次编辑是 3 年前 来自 问答

请教大家一个问题:接收到一个查询数据库数据的http请求,为了利用CPU就将这请求交给一个子进程处理,但是处理完之后不知道如何再发给请求者了。

var db = childProcess.fork('./database.js');   //创建数据库子进程
var http = require('http');  
http.createServer(function(request, response){  
   //db.send{} 此处向子进程db发送查询内容,让子进程处理数据库事务
   response.writeHead(200,{'Content-Type' : 'text/html'});  
   response.write('hello world!');  
   response.end();  
}).listen(8888);

db.on('message', function(data) {    //等待接收子进程返回的数据库查询结果,然后发给请求方
//????问题就是此处该怎么写才能将查询结果发给请求方呢?
})
4 回复

你这是需要个 mq 。

@cfxinxin 网上查了一下,请问是要用Redis写个消息队列吗?刚学node比较茫然

你可以尝试内部维护一个mq,当请求来的时候,将需要的数据和回调加入到mq中,然后db子进程处理这个程序,让后处理完之后运行回调即可

来自炫酷的 CNodeMD 越来越喜欢material design😁

@XGHeaven 好的,我先试试。node的异步还是有些不太适应

回到顶部