node.js + express + threads_a_gogo阻止请求
我有节点js中的一段代码,需要几秒钟的完成,所以我开始使用threads_a_gogo模块( https://github.com/xk/node-threads-a-gogo )不阻止http请求。 我花了很多时间试图弄清楚为什么产生的威胁不起作用,因为我的请求仍然被阻止。
app.post('/ results.html',function(req,res){ 如果(config.debug) console.log(“线程创build”); var t = threads.create(); var r = new rounds(); t.eval(r.start(req,res),function(err,result){ r.finish(res); //t.destroy(); 如果(config.debug) console.log(“thread destroyed”); }); console.log(“请求完成”); });
console.log(“请求完成”); 仅在新线程完成后显示,但是假设几乎在请求完成时显示,并且在服务器完成之前显示对服务器的阻塞请求。
任何想法做什么即时错误?
谢谢
您实际上是在主线程中执行r.start(req,res)
,然后将返回值传递给t.eval
。 eval
接受一个string,然后在全局线程中执行。 像这样的东西应该工作:
t.eval('var start =' + r.start.toString()).eval('start()'), function(err, result) { });