Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Meteor 0.7.2+oplogobservedDriver在某些情况下不更新_Meteor - Fatal编程技术网

Meteor 0.7.2+oplogobservedDriver在某些情况下不更新

Meteor 0.7.2+oplogobservedDriver在某些情况下不更新,meteor,Meteor,这是非常前沿的,因为今天刚刚发布了0.7.2,但我想我会问一下,以防有人能透露一些信息 我没有向MDG报告这一点,因为我无法在我的开发环境中复制这一点,因此我没有给他们一个配方 我已经在我的生产环境中设置了oplog tailing,它的部署与我的开发环境完全相同,只是它位于远程服务器上 服务器运行的是Ubuntu+节点0.10.26,而我运行的是捆绑版的应用程序forever。Mongo报告其replSet工作正常 问题是,在服务器代码中进行的某些集合更新无法发送到客户端。这是工作流程,代码如

这是非常前沿的,因为今天刚刚发布了0.7.2,但我想我会问一下,以防有人能透露一些信息

我没有向MDG报告这一点,因为我无法在我的开发环境中复制这一点,因此我没有给他们一个配方

我已经在我的生产环境中设置了oplog tailing,它的部署与我的开发环境完全相同,只是它位于远程服务器上

服务器运行的是Ubuntu+节点0.10.26,而我运行的是捆绑版的应用程序forever。Mongo报告其replSet工作正常

问题是,在服务器代码中进行的某些集合更新无法发送到客户端。这是工作流程,代码如下所示:

服务器使用一个非常简单的用户标识来发布集合:this.userId选择器。 客户订阅 客户端使用Meteor.call调用服务器方法 客户端开始使用特定的_id:something选择器观察该集合上的查询。它将在更改后发出回声 服务器方法调用。在完成一些工作后,更新与该id匹配的文档。 如果我通过不设置MONGO_oplog_URL在没有oplog跟踪的情况下运行应用程序,则上述工作流每次都有效。但是,如果我使用oplog tailing运行它,客户端不会回显任何更改,如果我直接从浏览器上的JS控制台查询集合,则看不到集合的更新版本

更神秘的是,如果我进入mongo控制台并手动更新文档,我会立即在客户端看到更改。或者,如果我在Meteor.call之后刷新浏览器,然后从js控制台手动查询集合,那么更改就会出现,正如我所期望的那样

如前所述,如果我在我的开发环境中运行应用程序,并使用facts包验证oplog tailing,那么它将按照预期工作,并且我无法重现该问题。这里唯一的区别是客户端和服务器之间的延迟?我的开发环境在我的局域网中


也许如果有人遇到类似的问题,我们可以隔离问题并使其重现。

更改肯定是从你的应用程序进入数据库的?这是令人惊讶的,如果你能让它成为我们可以复制或调试的东西,我很想知道。而0.7.1版本绝对不会出现这种情况。.update称为服务器端,我可以在mongo中看到更改,但是客户端在我刷新或更改mongo中的其他内容之前看不到这些更改。我会尝试想出一个配方。@imslavko这在0.7.1中没有发生,我也有这个问题,即使我的meteor和met也不能像平常一样运行