存储事件队列直到创建侦听器

时间:2017-06-27 10:38:34

标签: node.js events event-handling

我有系统可以发送许多事件和一些数据,当它可用时。我想将它们存储在内存中,直到创建监听器,它会占用一个事件数据并死掉。

我认为它应该是内存队列中的一些事件。不要像Redis那样使用额外的存储空间。

建议模式或模块,以帮助以适当的方式做到这一点。

1 个答案:

答案 0 :(得分:0)

抱歉,没有注意到您不想要任何额外的存储空间。所以你应该只使用符合你需要的队列类型。

所以基本上你创建一个小模块,处理你的需求。 让我们的图像你需要一个堆栈类型队列。比你的模块简单:

module.exports = {
  // storage
  _stack: [],

  // add event
  push: data => this._stack.push(data),

  // fetch event
  pop: () => {
    if (!this._stack.length) return null;
    return this._stack.pop();
  }
};

如果是另一种队列类型,解决方案会更复杂一些。

<强>更新 但是如果有多个服务,也许你应该考虑一些存储。一项服务提供数据 - 另一项服务。如果其中任何一个失败的情况下 - 您的数据将保持活跃。