Parse.com考虑了多少API请求?

时间:2014-12-13 17:23:25

标签: parse-platform cloud-code

我写了一个云代码

Parse.Cloud.define("getApartmentVendorProduct", function(request, response) {
  var isApartmentCallComplete = false;
  var isVendorCallComplete = false;
  var isProductCallComplete = false;

  var result = {};

  var apartmentQuery = new Parse.Query("Apartment");
  apartmentQuery.find({
    success: function(results) {
      isApartmentCallComplete = true;
      results.apartments = results;
    }
  });

  var vendorQuery = new Parse.Query("Vendor");
  vendorQuery.find({
    success: function(results) {
      isVendorCallComplete = true;
      results.vendors = results;
    }
  });

  var productQuery = new Parse.Query("Product");
  productQuery.find({
    success: function(results) {
      isProductCallComplete = true;
      results.products = results;
    }
  });

  setInterval(function () {
    if (isApartmentCallComplete && isVendorCallComplete && isProductCallComplete) {
      response.success(results);
    }
  }, 50);

});

PS:我很清楚setInterval不适用于Parse ..这段代码只是为了理解。

在此云功能中,我进行了3次查询操作。

在我的Android应用程序中,我正在调用此云代码。

这是我的问题。 考虑了多少API请求?

1)由云代码制作的3个API请求和由Android制作的1个API请求 - 总计4

2)Android提供的1个API请求。 - 总计1

1 个答案:

答案 0 :(得分:0)

该选项为1,它发出4个请求。

我尝试使用示例代码来测试Burst Limit

Parse.Cloud.define("testBurstLimit", function(request, response) {
  var globalI = 0;
  for(var i = 0; i < 500; i++) {
    var productQuery = new Parse.Query("Product");
    productQuery.find({
      success: function(results) {
        console.log("success " + i  + " " + globalI);
        globalI++;
        if (globalI == 250) {
          response.success("success");
        }
      },
      error: function(error) {
        isApartmentCallComplete = true;
        if (isApartmentCallComplete && isVendorCallComplete && isProductCallComplete) {
          console.log(error.message + " " + error.code);
        }
      }
    });
  }
});

我发现有一点奇怪的是。 Parse不会计算请求/秒,而是以每秒/每分钟的请求计算。当我一次又一次地执行BurstLimit云代码时检查Parse的响应

{"code":155,"error":"This application performed 1814 requests over the last 28s, and exceeded its request limit. Please retry in 32s"}