2016-08-12 105 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條記錄。然而,當我加載時,響應速度太慢,可以重複加載,這使得響應時間更長。

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 

當你從我上面的附件注意到,在這個時候(20160812-04:07:28.214)的服務器重複從加載再次開始,這就是爲什麼反應會需要更長的時間。

這並不總是發生。它發生在服務器加載緩慢時。服務器加載速度很快時。一切都運行順利。

+0

我很想知道:爲什麼不使用連接類型來做這件事,而是使用連接的光標進行數據庫查詢? –

回答

1

沒有足夠的信息來回答這個問題,但我的猜測是它與GraphQL無關。我認爲你的客戶只是取消了請求,並且做了另一個,因爲第一個超時。您可以通過在向服務器傳遞GraphQL之前將請求記錄到服務器來了解是否發生這種情況。