CNode

请教一个关于http请求中返回信息的问题

问答
Vvip1232发布于11 年前最后回复11 年前4 回复4317 浏览0 收藏

请教大家一个问题:接收到一个查询数据库数据的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)

C
cfxinxin#1·11 年前

你这是需要个 mq 。

V
vip1232#2·11 年前
引用 cfxinxin你这是需要个 mq 。

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

X
XGHeaven#3·11 年前

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

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

参与回复
登录后即可参与回复。登录