Javascript Node.js-按数组长度和时间进行队列管理

Javascript Node.js-按数组长度和时间进行队列管理,javascript,arrays,node.js,queue,Javascript,Arrays,Node.js,Queue,我正在尝试为我构建的微服务处理器添加一个队列机制,简言之,处理器从其他服务器获取id(通过REST调用),从DB添加信息,并使用丰富的id数据创建一个新对象。 队列管理器应该管理一个id数组,并在之后充实数据 x毫秒或y个id数量。(浓缩将作为一个整体进行) 我该怎么做?如何管理队列 我知道有一个setInterval()函数非常好,但它只解决了我的时间问题,我如何添加另一个条件也可以按数组长度进行扩展?要查看队列何时达到某个长度,我可以想出三种策略来监控长度的变化: 在队列添加到的位置触发一个

我正在尝试为我构建的微服务处理器添加一个队列机制,简言之,处理器从其他服务器获取id(通过REST调用),从DB添加信息,并使用丰富的id数据创建一个新对象。 队列管理器应该管理一个id数组,并在之后充实数据

x毫秒或y个id数量。(浓缩将作为一个整体进行)

我该怎么做?如何管理队列


我知道有一个
setInterval()
函数非常好,但它只解决了我的时间问题,我如何添加另一个条件也可以按数组长度进行扩展?

要查看队列何时达到某个长度,我可以想出三种策略来监控长度的变化:

  • 在队列添加到的位置触发一个
    onChange
    通知。
    确保向队列添加项目的代码始终通过一个特定函数执行此操作,这样就不会有大量随机代码修改队列。然后,在该函数中,在将项添加到队列之后,立即在您创建的EventMitter上触发onChange事件。然后,队列管理器可以为onChange事件添加一个侦听器,并在每次修改队列时检查它

  • 覆盖队列数组的
    .push()
    假设您知道只有使用
    .push()
    将项目添加到队列数组中,则会覆盖
    .push()
    方法,使用您自己的方法调用默认推送,然后您可以检查数组的长度以决定是否需要进一步操作

  • 使用ES6代理主动监视阵列的长度,并随时查看阵列的变化。这里有一个示例说明如何做到这一点:和



  • 就目前而言,听起来您已经知道可以使用计时器,例如
    setInterval()
    setTimeout()
    。我不清楚你到底想让你的时间元素发挥多大作用,以便就如何使用这些时间元素提出更具体的建议。sipmlest实现可能只是每隔xx毫秒使用
    setInterval()
    轮询队列,并处理队列中当前的任何项目。可能有更智能的算法可以监视队列何时从空变为非空,并从该时间点开始
    setTimeout()

    在广泛使用的异步库中有一个队列控制流对象:-您可能希望从那里开始,而不是创建自己的队列。