如何在rethinkDb中创建触发器

时间:2014-11-26 11:02:17

标签: node.js rethinkdb

我的要求:

如果表中有数据更改(无论是插入,更新,删除),我应该是 能够使用我的逻辑更新我的缓存,该逻辑使用表进行操作。

Technology : Node, rethinkDb

我的实施:

我在rethinkDb中听说过table.changes(),它会发出代表表格更改的对象流。

我试过这段代码

r.table('games').changes().run(conn, function(err, cursor) {
  cursor.each(console.log);
});

它的工作正常,我的意思是我得到的事件是我把我的逻辑用于操纵。

我的问题是指发布更改的时间。我的意思是有任何限制。 它是如何工作的?

我在他们的文档中读到了这个,

服务器最多可缓冲100,000个元素。如果达到缓冲区限制,则将丢弃早期更改,并且客户端将收到格式为{error:" Changefeed cache over array size limit,跳过X元素。"}的对象,其中X是跳过的元素数量。

我没有理解这一点。我想在100,000之后它不会像old_vale和new_value那样给出变化。

请解释这个约束,并根据要求这是否有效?

我非常喜欢这项技术。请帮我。

1 个答案:

答案 0 :(得分:3)

简短回答:没有限制。

缓冲区的100.000元素是您不从光标检索更改。服务器将持续缓冲100,000个元素。如果您使用each,则会在更改完成后立即检索更改,因此您不会受到限制的影响。