2017-09-20 21 views
0

10000 개의 데이터 테이블이 있고 쿼리 (jql)를 사용하여 테이블의 특정 데이터를 가져옵니다. 그리고 가져온 수는 673이지만 올바른 데이터를 열 때 데이터가 100 개만 전송됩니다. 여기에 내 코드 :JS parase 데이터가 약 8000 개의 테이블에서 JSON 형식으로 100 개의 데이터 만 전송

request({ 
///////////////////////////////////// 
//query to get current open tickets// 
///////////////////////////////////// 
url: '/rest/api/2/search?jql=project=OWRT AND status in (Open, "In Progress", Reopened)&startAt=0&maxResults=-1', 
success: function(response) { 
    var owrt = $.parseJSON(response); 
    var liktot = parsedata(response,'owrt'); 
console.log("OWRT max"+owrt.maxResults); 
    request({ 
    //////////////////////////////////////////////////// 
    //query to get current resolved and closed tickets// 
    //////////////////////////////////////////////////// 
    url: '/rest/api/2/search?jql=project=OWRT AND status not in (Open, "In Progress", Reopened)', 
    success: function(response1) { 
    var fixowrt = $.parseJSON(response1); 
    var owrt_tot=owrt.total; 
    request({ 
    ////////////////////////////////////////// 
    //query to get year 2016 created tickets// 
    ////////////////////////////////////////// 
    url: '/rest/api/2/search?jql=project = OWRT AND created >= 2016-01-01 AND created <= 2016-12-31', 
    success: function(response2) { 
     var cowrt = $.parseJSON(response2); 
     request({ 
     ////////////////////////////////////////// 
     //query to get year 2017 created tickets// 
     ////////////////////////////////////////// 
     url: '/rest/api/2/search?jql=project = OWRT AND created >= 2017-01-01 AND created <= 2017-12-31&maxResults=-1', 
     success: function(response3) { 
    var cfixowrt = $.parseJSON(response3); 
     var owrtcre17 = parsedata(response3,'owrt2017'); 
     var cowrt_tot=cowrt.total; 
     request({ 
    ///////////////////////////////////////// 
    //query to get year 2016 closed tickets// 
    ///////////////////////////////////////// 
     url: '/rest/api/2/search?jql=project = OWRT AND status = Closed AND updated >= 2016-01-01 AND updated <= 2016-12-31', 
    success: function(response4) { 
      var fowrt = $.parseJSON(response4); 
      request({ 
     ///////////////////////////////////////// 
     //query to get year 2017 closed tickets// 
     ///////////////////////////////////////// 
      url: '/rest/api/2/search?jql=project = OWRT AND status = Closed AND updated >= 2017-01-01 AND updated <= 2017-12-31', 
     success: function(response5) { 
     var ffixowrt = $.parseJSON(response5); 
      var fowrt_tot=fowrt.total; 
      request({ 
     //////////////////////////////////////////// 
     //query to get all tickets in this project// 
     //////////////////////////////////////////// 
      url: '/rest/api/2/search?jql=project=OWRT', 
     success: function(response6) { 
       console.log("start1:"+reqcount); 
      var fullowrt = $.parseJSON(response6); 
      var fullowrt_tot = fullowrt.total 
       var obj = {}; 
      obj['key']='OWRT'; 
      obj['tot']=owrt_tot; 
      obj['totlink']=liktot[0]; 
      obj['ntotlink']=liktot[1]; 
      obj['fixntotlink']=fixowrt.total; 
      obj['ckey']='OWRT'; 
      obj['ctot']=cowrt_tot; 
      obj['cre17totlink']=owrtcre17[0]; 
      obj['cre17ntotlink']=owrtcre17[1]; 
      obj['cfixntotlink']=cfixowrt.total; 
      obj['fkey']='OWRT'; 
      obj['ftot']=fowrt_tot; 
      obj['ffixntotlink']=ffixowrt.total; 
      obj['fulltot']=fullowrt.total; 
      summary.push(obj); 
      reqcount=reqcount+1; 
     requestexe(); 
      }, 
      error: function(response) { 
      console.log("Error loading API (" + uri + ")"); 
      console.log(arguments); 
      }, 
      data: {"fields":["key"]}, 
      contentType: "application/json" 
      }); 
      requestexe(); 
      }, 
      error: function(response) { 
      console.log("Error loading API (" + uri + ")"); 
      console.log(arguments); 
      }, 
      data: {"fields":["key"]}, 
      contentType: "application/json" 
      }); 
     requestexe(); 
     }, 
     error: function(response) { 
     console.log("Error loading API (" + uri + ")"); 
     console.log(arguments); 
     }, 
     data: {"fields":["key"]}, 
     contentType: "application/json" 
     }); 
     requestexe(); 
     }, 
     error: function(response) { 
     console.log("Error loading API (" + uri + ")"); 
     console.log(arguments); 
     }, 
     data: {"fields":["key","id","status","project","issuetype","issuelinks", "summary", "assignee", "type",'created']}, 
     contentType: "application/json" 
     }); 
    requestexe(); 
    }, 
    error: function(response) { 
    console.log("Error loading API (" + uri + ")"); 
    console.log(arguments); 
    }, 
    data: {"fields":["key"]}, 
    contentType: "application/json" 
    }); 
    requestexe(); 
    }, 
    error: function(response) { 
    console.log("Error loading API (" + uri + ")"); 
    console.log(arguments); 
    }, 
    data: {"fields":["key"]}, 
    contentType: "application/json" 
    }); 
requestexe(); 
}, 
error: function(response) { 
console.log("Error loading API (" + uri + ")"); 
console.log(arguments); 
}, 
data: {"fields":["key","id","status","project","issuetype","issuelinks", "summary", "assignee", "type",'created']}, 
contentType: "application/json" 
}); 

쿼리를이다에만 전송된다 (100)로부터 데이터를 fectching 때 "owrt_tot"정확한 전송되지만, 포함되는 총 수를보고 "liktot [0]"+ " liktot 1 ". the final outcome of data

그러나 총 수는 673입니다 그러나 위의 코드에서 전송 데이터는 (100) 총 수는 며칠 코드를 계속 실행 1,000 개까지 이후이 전입니다 그래서 거기에 아무것도 100에 저를 인도하는 메모리가 문제이거나 코드를 변경해야합니까?

+0

요청을 중첩하는 것은 매우 오류가 발생하기 쉬울뿐만 아니라 끔찍한 것처럼 보입니다. 나는 당신이 먼저 당신의 요청을 쪼개고 당신의 결과를 그 후에 확인해 볼 것입니다. 어쩌면 당신의 오류 자체가 해결됩니다. 그렇지 않으면 refactored 버전을 게시하시기 바랍니다. 이것을 확인하십시오 https://stackoverflow.com/questions/12101687/nested-requests-are-blocking?answertab=votes#tab-top – Akaino

답변

0

이것은 JIRA atlassian api의 문제입니다. 그들이 의도적으로 제한하는 atlassian 지원으로 확인했습니다.