nodejs里有没有可以存储callback函数的缓冲队列? 现在是想把收到的请求的参数连同callback函数一起存储在一个队列中, 一次从队列里取出20个进行处理(调用的api一次处理20个参数), 然后再根据结果分别调用那20个callback函数. 不知道有没有现成的工具或者方法?
如果你说的是任务队列的话,试试看这个 [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啊 ! 根本就不互相干扰啊… 除非你这些请求要有序处理
你可以用这个 https://www.npmjs.com/package/generic-pool
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
如果你说的是任务队列的话,试试看这个 [kue][https://github.com/Automattic/kue]
希望对你有用.
@danielsss 多谢回答, 我也用过这种方法, 但是这种方法是不是相当于把数组存在内存中? 如果想用cluster模式利用多核cpu的话, 因为node的进程与进程之间是不能直接共享内存的, 会导致数组跟数组之前也是分离的, 可能20个请求发过去, 4个进程每个里面只有5个请求, 这种怎么解决…
@gfafei 多谢回答, 我去学习一下~
讲到缓冲函数,只能联想到函数式编程里的compose了 Haskell里
换成js就是
@Eeylx 你每个进程处理每个进程的callback啊 ! 根本就不互相干扰啊… 除非你这些请求要有序处理
你可以用这个 https://www.npmjs.com/package/generic-pool