nodejs里有没有可以存储callback函数的缓冲队列?
nodejs里有没有可以存储callback函数的缓冲队列? 现在是想把收到的请求的参数连同callback函数一起存储在一个队列中, 一次从队列里取出20个进行处理(调用的api一次处理20个参数), 然后再根据结果分别调用那20个callback函数. 不知道有没有现成的工具或者方法?
7 回复
如果你说的是任务队列的话,试试看这个 [kue][https://github.com/Automattic/kue]
var arr = [];
const callback = function(){
let key = this.key;
console.log(key);
};
arr.push(callback.bind({key:value}))
希望对你有用.
@danielsss 多谢回答, 我也用过这种方法, 但是这种方法是不是相当于把数组存在内存中? 如果想用cluster模式利用多核cpu的话, 因为node的进程与进程之间是不能直接共享内存的, 会导致数组跟数组之前也是分离的, 可能20个请求发过去, 4个进程每个里面只有5个请求, 这种怎么解决…
@gfafei 多谢回答, 我去学习一下~
讲到缓冲函数,只能联想到函数式编程里的compose了 Haskell里
λ> ((/2) . (+1)) 3
λ> 2.0
换成js就是
let {curry} = require('lodash');
let {compose} = require('rambda');
let add = curry((n, d) => d + n),
div = curry((n, d) => d / n);
let fns = compose(div(2), add(1));
console.log(fns(3)); // 2
@Eeylx 你每个进程处理每个进程的callback啊 ! 根本就不互相干扰啊… 除非你这些请求要有序处理