過去数日間同じエラーが発生しています。ここに私が使用しているコードがあります。私は、問題はnodejsの非同期性に関係しており、コールバックを適切に使用しないので、コード/リクエストが非同期的に非同期的に送信されるのと同時に発生すると思います。
Error: You've exceeded your current limit of 5 requests per second for query class
私がCloudant Serviceに対して行う各リクエストの間に1秒の待機時間があります。私は何かがサービスに間違っていると思う。
// Used to add sleep time between calls to cloudant
var sleep = require('sleep');
const winston = require('winston')
var action_result = null
winston.level = 'debug';
var dbCredentials = {
dbName: 'testdb'
};
var feed = 1;
//Intialize DB for putting records in Cloudant.
dbCredentials.url = "https://replace with your URL-bluemix:replacewith your URL-bluemix.cloudant.com";
cloudant = require('cloudant')(dbCredentials.url);
// check if DB exists if not create a testdb database
cloudant.db.create(dbCredentials.dbName, function(err, data) {
winston.log("debug","create a test database Error:", err);
winston.log("debug","create a test database Data:", data);
});
dbnames = cloudant.db.use(dbCredentials.dbName);
winston.log("debug","Creating a record in database %s" , dbCredentials.dbName);
// Insert a one second timeout delay to not exceed 5 queries every 1 second in Cloudant API
winston.log("debug","Reproduce timeout error First SLEEP 5 minutes--------------- FIND Time is %d ", new Date().getTime()/1000);
sleep.sleep(1);
//Check if the asset action already exists.
dbnames.find({selector:{feed:feed }}, function(er, action_result) {
sleep.sleep(5);
if (er) {
winston.log("debug",'[db.find] Error Message %s', er.message);
throw er;
}
});
if (action_result !== null) {
winston.log("debug",'Reproduce timeout error found results %d documents.', action_result.docs.length);
return action_result;
}else{
winston.log("debug",'Reproduce timeout error before loop');
for (var i = 0; i < 1000; i++) {
winston.log("debug","Reproduce timeout error SLEEP item %d --------------- FIND Time is %d " ,i, new Date().getTime()/1000);
sleep.sleep(1);
dbnames.insert(docData (i, new Date().getTime()/1000), function(err, body, header) {
if (err) {
return winston.log("debug",'[db.insert] ', err.message);
}
winston.log("debug",'You have inserted the doc.');
expert_exists = false;
});
}; //End Loop
}; //End Else
function docData (number, timestring) {
var responseData = {
feed : number,
time : timestring,
};
return responseData;
}
クラウドサービスへの各リクエストの間に同じエラーが発生し、5秒の待機時間があります。私は何かがサービスに間違っていると思う。 –