IBM Cloudant已连接到Jupyter笔记本。我可以使用不是很大的数据库。但是当我想从数据库中获取包含许多数据的数据时,我收到了这个错误:
HTTPError:429客户端错误:请求太多too_many_requests您已超出查询类每秒5个请求的当前限制。请稍后再试
这个问题有什么关系吗? 任何想法都会非常有用。
这是我的代码:
6.png
这就是我得到的
// Instance the tour
var tour = new Tour({
steps: [ ... ]
});
// Initialize the tour
tour.init();
//check page tour version
var tourpageversion = "2018-03-30";
if (localStorage.getItem("tourversion_layout") !== tourpageversion) {
localStorage.setItem("tourversion_layout", tourpageversion);
tour.restart();
}
// Start the tour
tour.start();
答案 0 :(得分:1)
尝试这样查询:
database1 = client['comfort']
userID= input("what is your user ID?")
selector = {'user_id': {'$eq': userID}}
docs = database1.get_query_result(selector)
for doc in docs:
do stuff...
直接来自the docs
答案 1 :(得分:0)
因此,对此的实际明确答案是在连接中添加所谓的Replay429Adapter。
这将解决捕获HTTP429错误并重试和调整连接的问题,以减轻Cloudant Lite计划对IBM Cloud的每秒5个查询限制的直接影响。
一旦你知道要寻找什么,这实际上是记录在案的:
https://python-cloudant.readthedocs.io/en/latest/getting_started.html?highlight=Replay429Adapter
您需要添加:
from cloudant.adapters import Replay429Adapter
然后,添加
,adapter=Replay429Adapter(retries=10, initialBackoff=0.01))
到您的Cloudant客户端连接器创建
答案 2 :(得分:0)
添加Replay429Adapter是解决此错误和真正有弹性的客户端的正确解决方案。
我的客户端连接如下(使用IAM身份验证):
from cloudant.client import Cloudant
from cloudant.adapters import Replay429Adapter
db_client = Cloudant.iam(cloudant_username, cloudant_apikey, connect=True, adapter=Replay429Adapter(retries=10, initialBackoff=0.01))