UNPKG

aliyun-tablestore-nodejs-sdk

Version:
73 lines (60 loc) 2.23 kB
var client = require('./client'); var TableStore = require('../index.js'); var Long = TableStore.Long; var params = { tables: [{ tableName: 'sampleTable', primaryKey: [ [{ 'gid': Long.fromNumber(20013) }, { 'uid': Long.fromNumber(20013) }], [{ 'gid': Long.fromNumber(20015) }, { 'uid': Long.fromNumber(20015) }] ], startColumn: "col2", endColumn: "col4" }, // { // tableName: 'notExistTable', // primaryKey: [ // [{ 'gid': Long.fromNumber(10001) }, { 'uid': Long.fromNumber(10001) }] // ] // } ], }; var maxRetryTimes = 3; var retryCount = 0; function batchGetRow(params) { client.batchGetRow(params, function (err, data) { if (err) { console.log('error:', err); return; } var isAllSuccess = true; var retryRequest = { tables: [] }; for (var i = 0; i < data.tables.length; i++) { var faildRequest = { tableName: data.tables[i][0].tableName, primaryKey: [] }; for (var j = 0; j < data.tables[i].length; j++) { if (!data.tables[i][j].isOk && null != data.tables[i][j].primaryKey) { isAllSuccess = false; var pks = []; for (var k in data.tables[i][j].primaryKey) { var name = data.tables[i][j].primaryKey[k].name; var value = data.tables[i][j].primaryKey[k].value; var kp = {}; kp[name] = value; pks.push(kp); } faildRequest.primaryKey.push(pks); } else { // get success data } } if (faildRequest.primaryKey.length > 0) { retryRequest.tables.push(faildRequest); } } if (!isAllSuccess && retryCount++ < maxRetryTimes) { batchGetRow(retryRequest); } console.log('success:', JSON.stringify(data, null, 4)); }); } batchGetRow(params, maxRetryTimes);