【问题标题】:graphQL slow response and duplicate responsegraphQL 慢响应和重复响应
【发布时间】:2016-12-18 23:43:58
【问题描述】:

有没有人遇到过使用 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)服务器重复从头开始加载,这就是为什么响应时间会更长。

这并不总是发生。当服务器加载缓慢时会发生这种情况。当服务器快速加载时。一切都很顺利。

【问题讨论】:

  • 我很想知道:与其动态加载所有记录,不如为此使用connection 类型并使用connection 的光标进行数据库查询?跨度>

标签: mongodb meteor graphql apollo mantrajs


【解决方案1】:

这里没有足够的信息来回答这个问题,但我的猜测是它与 GraphQL 无关。我认为您的客户只是取消了请求并提出了另一个请求,因为第一个请求超时。您可以通过在将请求传递到 GraphQL 之前将请求记录到您的服务器来了解是否发生这种情况。

【讨论】:

    猜你喜欢
    • 2020-05-09
    • 2020-12-08
    • 2019-08-20
    • 2021-04-10
    • 2019-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-29
    相关资源
    最近更新 更多