2016-08-12 5 views
0

graphQL을 사용하여 응답 속도가 느린 경우가 있습니까? 실제로 내 컬렉션에서 거대한 데이터를graphQL 응답이 느리고 응답이 중복 됨

getActiveCaseWithActiveProcess(){ 
    console.log ("getActiveCaseWithActiveProcess"); 

    var result = []; 
    var activeElements = ActiveElements.find({ 
     type:"signal", 
     $or:[ 
     {signalRef:"start-process"}, 
     {signalRef:"start-task"}, 
     {signalRef:"close-case"} 
     ] 
    },{limit:200}).fetch(); 

    for (var AE of activeElements){ 

     var checkAECount = ActiveElements.find({caseId:AE['caseId']}).count(); 
     if (checkAECount <= 3){ 
     console.log ('caseId: ' + AE['caseId']); 
     var checkExistInResult = result.filter(function (obj) { 
      return obj.caseId === AE['caseId']; 
     })[0]; 

     if (checkExistInResult == null){ 
      result.push({ 
      caseId: AE['caseId'], 
      caseStart: AE['createdDate'] 
      }); 
     } 
     } 
    } 
    console.log("loaded successfully"); 
    return result; 
} 

:

이것은 해결에 내 코드입니다. 약 20000 개의 레코드. 그러나 이것을로드 할 때 응답이 너무 느리고 반복적으로 다시로드하면 응답이 더 길어집니다. (: 07 : 20160812-04 28.214)이 시간에, 내 위의 첨부 파일에서 발견으로

I20160812-04:07:25.968(0)? caseId: CASE-0000000284, 
I20160812-04:07:26.890(0)? caseId: CASE-0000000285 
I20160812-04:07:28.200(0)? caseId: CASE-0000000285 
I20160812-04:07:28.214(0)? getActiveCaseWithActiveProcess 
I20160812-04:07:28.219(0)? caseId: CASE-0000000194 
I20160812-04:07:29.261(0)? caseId: CASE-0000000197 

서버에서로드 반복 다시 시작하고 응답 시간이 더 걸릴 것입니다 그 이유는.

항상 그런 것은 아닙니다. 서버가 느리게로드 될 때 발생합니다. 서버가 빨리로드됩니다. 모든 것이 순조롭게 진행됩니다.

+0

궁금한 점이 있습니다. 즉석에서 모든 레코드를로드하는 대신,이 경우'connection' 유형을 사용하고'connection'의 커서를 사용하여 DB 쿼리를 작성하는 것이 어떻습니까? –

답변

1

이 질문에 대답하기에는 정보가 충분하지 않지만 GraphQL과는 아무런 관련이 없다고 생각됩니다. 나는 당신의 클라이언트가 요청을 취소하고 다른 하나를 만든다고 생각한다. GraphQL에 전달되기 전에 서버에 요청을 로깅하여 문제가 발생하는지 확인할 수 있습니다.