gpt4 book ai didi

mongodb - cursor.observe 如何工作以及如何避免运行多个实例?

转载 作者:可可西里 更新时间:2023-11-01 09:10:20 35 4
gpt4 key购买 nike

观察

我试图弄清楚 cursor.observe 如何在 meteor 中运行,但一无所获。 Docs

Establishes a live query that notifies callbacks on any change to the query result.

我想更好地理解实时查询 的含义。

  • 我的观察者函数将在哪里执行?通过 Meteor 还是通过 mongo?

多次运行

当我们不止有一个用户订阅一个观察者时,每个客户端都会运行一个实例,从而导致性能和竞争条件问题。

  • 如何将我的observe 实现为单例?只为所有人运行一个实例。

编辑: 这里有第三个问题,但现在是一个单独的问题:How to avoid race conditions on cursor.observe?

最佳答案

服务器端,截至目前,observe 的工作方式如下:

  1. 构建与查询匹配的文档集。
  2. 定期使用查询轮询数据库并比较更改,将相关事件发送到回调。
  3. 当匹配数据被 meteor 本身更改/插入到 mongo 中时,发出相关事件,短路上面的步骤 #2。

有计划(可能在下一个版本中)自动确保共享具有相同参数的订阅调用。所以基本上会自动为您处理单例部分。

当然你可以自己实现这样的目标,但我相信这是 meteor 团队的首要任务,所以目前可能不值得付出努力。

关于mongodb - cursor.observe 如何工作以及如何避免运行多个实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13095647/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com