Я пытаюсь получить историю Rally Revision за последние 24 часа, используя NodeJS / rally-node.
Иерархия Obj: Пользовательская история -> История изменений -> Ревизии
Я мог бы получить результаты правильно, но это займет 35 секунд для 10 пользовательских историй. Я вставил свой пример кода здесь. Любой, пожалуйста, помогите мне, как я могу улучшить производительность!
Спасибо! Сундарраджан Р
Код образца:
'use strict'
let rally = require('rally');
let queryUtils = rally.util.query;
const restApi = rally({
apiKey: 'XXXXXXXXXXXX',
apiVersion: 'v2.0',
server: 'https://rally1.rallydev.com'
});
async function queryUserRevisions(revisions) {
const params = {
ref: revisions,
start: 1,
limit: 3,
order: 'RevisionNumber DESC',
fetch: ['RevisionNumber', 'Description', 'CreationDate', 'User']
};
return restApi.query(params);
}
async function queryUserRevisionHistory(RevisionHistory) {
const params = {
ref: RevisionHistory,
start: 1,
limit: 1,
fetch: ['Revisions']
}
return restApi.query(params);
}
async function traceRevisions() {
const startTime = new Date()
let UserStories;
let resultArray = [];
const ts = last24Hours();
const params = {
type: 'hierarchicalrequirement',
start: 1,
pageSize: 200,
limit: 100,
order: 'FormattedID',
fetch: ['Name', 'FormattedID', 'RevisionHistory'],
query: queryUtils.where('LastUpdateDate ', '>', '2020-04-13T00:00Z'),
scope: {
workspace: '/workspace/11111111111',
project: '/project/22222222222',
up: false,
down: true
}
};
try {
let response_one = await restApi.query(params);
const UserStoryCount = response_one.Results.length;
for (let i = 0; i < UserStoryCount; i++) {
UserStories = response_one.Results[i];
console.log(UserStories.FormattedID);
let response_two = await queryUserRevisionHistory(UserStories.RevisionHistory)
let response_three = await queryUserRevisions(response_two.Revisions);
for (let j = 0; j < response_three.Results.length; j++) {
let revision = response_three.Results[j];
resultArray.push({
FormattedID: UserStories.FormattedID,
RevisionNumber: revision.RevisionNumber,
Description: revision.Description,
CreationDate: revision.CreationDate,
UserName: revision.User._refObjectName
});
}
}
var endTime = new Date() - startTime;
console.log('Execution time: %dms', endTime);
return JSON.stringify(resultArray)
} catch (error) {
console.log(error);
}
}
module.exports.traceRevisions = traceRevisions;