对于某些用户请求,我需要进行一些繁重的计算(大约需要100毫秒的时间);而且,当然,我不想在节点的主事件循环中执行这些操作,以免阻止其他请求得到处理。
解决此问题的最明显但绝对不是最干净的方法是将计算卸载到另一个程序,然后异步等待结果。
有什么方法可以在不离开节点进程(并实现进程间通信)的情况下进行操作?例如这样的事情:
var compute = function (input) {
var i,
result = input;
for (i = 0; i < 1000000; i++) {
result = md5(result);
}
}
var controller = function (req, res) {
offload(compute, req.params.input, function(result) {
res.send(result);
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1791 次 |
| 最近记录: |