У меня есть 1500 записей, которые будут созданы в базе данных Azure Cosmos, я просто пробегаю с помощью кода JavaScript. У меня есть подключение API REST с базой данных. Я подаю данные, чтобы быть обновленными как массив JSON.
Проблема заключается в том, когда я передаю целые данные, тайм -аут базы данных Azure или отправлять ERR_CONNECTION_RESET. Многие из вас создаст огромное количество записей в базе данных, и может быть какой -то эффективный способ преодолеть эту проблему. Я хочу твое предложение.
Поскольку большинство записей не найдено, много раз создает новую запись И я никогда не продвигал такое огромное количество данных раньше. Любое предложение или новая идея действительно помогут мне.
Примечание. Я запускаю этот код JavaScript, используя модульный тест MOCHA
Ниже приведен фрагмент кода
Record.js
const fetch = require('node-fetch');
let connectionAzureDataBase = "abc...";
let SubscriptionKey = "xyz";
let promises = [];
let j = -1;
module.exports = {
checkRecord
}
function checkRecord (req) {
for (let i = 0; i < req.body.length; i++) {
promises[j] = new Promise(async function(resolve, reject) {
//check if record exist in azure
var apiUrl = APICheckRecord( req.body[i].recordName);
fetch(apiUrl , { headers:connectionAzureDataBase})
.then(res => res.json())
.then(record => {
if(record) {
console.log("Record Found");
} else {
console.log("Record not Found, calling API to create Record");
var apiUrl = APICreateNewRecord( req.body[i].recordName);
fetch(apiUrl , { headers:connectionAzureDataBase})
.then(res => res.json())
.then(recordCreated => {
if(recordCreated) {
console.log("record created successfully");
resolve("record created successfully");
} else {
console.log("Encountered some unexpected condition");
resolve("Encountered some unexpected condition");
}
}).catch(err => {
console.log("record could not be created");
resolve("record could not be created");
})
}
}).catch(err => {
console.log("record not found");
resolve("record not found");
})
})// close promise
}// close for
let replies = await Promise.all(promises);
let promise1 = new Promise (function(resolve,reject) {
resolve(replies);
})
}
Record.spec.js
const Records = require("Record.js);
it("should find/create records", async function() {
this.timeout(6000000);
try {
let req =[
{
"recordName": "Xyz",
"recordDate": "12-06-2020"
},
{
"recordName": "Abc",
"recordDate": "13-06-2020"
}
]
let reply = await Records.checkRecord(req);
console.log(JSON.stringify(reply));
} catch(err) {
console.log(err);
}
})
Ошибка
message: 'request to https://apim-dev.azure-api.net/api/portal/records/?recordName="Xyz" failed, reason: read ECONNRESET', type: 'system', errno: 'ECONNRESET', code: 'ECONNRESET' } message: 'request to https://apim-dev.azure-api.net/api/portal/createRecords/ failed, reason: read ECONNRESET', type: 'system', errno: 'ECONNRESET', code: 'ECONNRESET' }
Это образец передачи данных, у меня есть 1500 таких записей Образец данных
[
{
"recordName": "Xyz",
"recordDate": "12-06-2020"
},
{
"recordName": "Abc",
"recordDate": "13-06-2020"
}
]
Оригинал: “https://dev.to/karthik22061993/how-to-create-update-large-quantity-records-in-azure-cosmos-database-4mcm”