- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
所以我的应用程序中有一些不需要立即响应的东西,我在文档中找到了属性 pollingThrottleMs 和 pollingIntervalMs。所以这里基本上是关于我设法找到的那些属性的所有信息:
pollingIntervalMs Number (Server only) How often to poll this query when observing on the server. In milliseconds. Defaults to 10 seconds.
pollingThrottleMs Number (Server only) Minimum time to allow between re-polling. Increasing this will save CPU and mongo load at the expense of slower updates to users. Decreasing this is not recommended. In milliseconds. Defaults to 50 milliseconds.
所以第一个问题 - 我不太清楚这些属性之间的区别是什么,也许有人可以向我解释一下? (pollingThrottleMs 是订阅更新的一种速率限制,而 pollingIntervalMs 是我们检查更新的频率,据我所知)另外 pollingIntervalMs 默认是 10s?真的吗?那为什么特性的名字里有Ms呢?这是不对的。
然后我尝试像这样在我的查询中设置这些属性:
Meteor.publish("currentRoom", function (roomName) {
return Rooms.find({name: roomName}, {
pollingThrottleMs: 5000,
pollingIntervalMs: 5000
});
});
我预计一个客户端的更新与另一个客户端的响应更新之间有 5 秒的延迟,但它似乎根本不起作用。我什至在 observe 中设置了断点,它会立即得到通知。难道我做错了什么?它是如何工作的?
最佳答案
那 10 秒应该是 10 毫秒。
请确保您只更新 MongoDB 而不是 Minimongo - 例如,如果您通过 Meteor 方法进行更新,请确保您没有客户端 stub 。
试试这个:
Meteor.publish("currentRoom", function (roomName) {
return Rooms.find({name: roomName}, {
disableOplog: true,
pollingThrottleMs: 10000,
pollingIntervalMs: 10000
});
});
您必须禁用 oplog 拖尾。如果不这样做,每次 MongoDB 日志更改时您仍然会收到通知。
我与客户端的观察者一起测试了它,它有效。
Cursor.observe({
changed: (newdoc, olddoc) => {
console.log('changed');
}
});
附加信息:
https://github.com/meteor/docs/blob/version-NEXT/long-form/oplog-observe-driver.md http://info.meteor.com/blog/tuning-meteor-mongo-livedata-for-scalability
关于mongodb - 如何使用 pollingThrottle 和 pollingInterval?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38661193/
所以我的应用程序中有一些不需要立即响应的东西,我在文档中找到了属性 pollingThrottleMs 和 pollingIntervalMs。所以这里基本上是关于我设法找到的那些属性的所有信息: p
我在这里使用 JQuery idleTimeout 插件: http://www.erichynds.com/examples/jquery-idle-timeout/example-mint.htm
我是一名优秀的程序员,十分优秀!