Javascript Node.js-按数组长度和时间进行队列管理
我正在尝试为我构建的微服务处理器添加一个队列机制,简言之,处理器从其他服务器获取id(通过REST调用),从DB添加信息,并使用丰富的id数据创建一个新对象。 队列管理器应该管理一个id数组,并在之后充实数据 x毫秒或y个id数量。(浓缩将作为一个整体进行) 我该怎么做?如何管理队列Javascript Node.js-按数组长度和时间进行队列管理,javascript,arrays,node.js,queue,Javascript,Arrays,Node.js,Queue,我正在尝试为我构建的微服务处理器添加一个队列机制,简言之,处理器从其他服务器获取id(通过REST调用),从DB添加信息,并使用丰富的id数据创建一个新对象。 队列管理器应该管理一个id数组,并在之后充实数据 x毫秒或y个id数量。(浓缩将作为一个整体进行) 我该怎么做?如何管理队列 我知道有一个setInterval()函数非常好,但它只解决了我的时间问题,我如何添加另一个条件也可以按数组长度进行扩展?要查看队列何时达到某个长度,我可以想出三种策略来监控长度的变化: 在队列添加到的位置触发一个
我知道有一个
setInterval()
函数非常好,但它只解决了我的时间问题,我如何添加另一个条件也可以按数组长度进行扩展?要查看队列何时达到某个长度,我可以想出三种策略来监控长度的变化:
onChange
通知。确保向队列添加项目的代码始终通过一个特定函数执行此操作,这样就不会有大量随机代码修改队列。然后,在该函数中,在将项添加到队列之后,立即在您创建的EventMitter上触发onChange事件。然后,队列管理器可以为onChange事件添加一个侦听器,并在每次修改队列时检查它.push()
。假设您知道只有使用.push()
将项目添加到队列数组中,则会覆盖.push()
方法,使用您自己的方法调用默认推送,然后您可以检查数组的长度以决定是否需要进一步操作就目前而言,听起来您已经知道可以使用计时器,例如
setInterval()
或setTimeout()
。我不清楚你到底想让你的时间元素发挥多大作用,以便就如何使用这些时间元素提出更具体的建议。sipmlest实现可能只是每隔xx毫秒使用setInterval()
轮询队列,并处理队列中当前的任何项目。可能有更智能的算法可以监视队列何时从空变为非空,并从该时间点开始setTimeout()
。在广泛使用的异步库中有一个队列控制流对象:-您可能希望从那里开始,而不是创建自己的队列。