解析率限制清理数据

时间:2015-05-06 20:25:59

标签: parse-platform

我有5K以上的行,我有一个很长的Lat列,我想添加另一个列位置并从long和lat创建一个GeoPoint所以我可以用解析做一些GeoLocation查询来自申请。

我已经编写了以下cloudCode,但我正在达到速率限制,因为它使用了>每秒30个请求。我很高兴等待1小时才能完成所有我想要做的就是创建地理位置,然后我就完成了。

    Parse.Cloud.define("locationCleanUp", function(request, response) {

    var setLocation = function(longitude,latitude) {

        var point = new Parse.GeoPoint({latitude:latitude, longitude:longitude});

        //console.log(point);

        return point;

    };

    var query = new Parse.Query("WeatherSitelistCodes");

    query.each(

        function(result) {

            //console.log(result.get('name'));
            result.set("location",setLocation(result.get("longitude"),result.get("latitude")));
            result.save();

        },{
            success: function(result) {
                response.success("All Done!");
                //console.log(result.set("location",setLocation(result.get("longitude"),result.get("latitude"))));

            },
            error: function() {
                console.log("Error: " + error);
            }
        });
     });

我将非常感谢有关如何做到这一点的任何提示或建议!

我的下一个停靠点是在本地清理数据然后上传,但我已经做到了这一点......

2 个答案:

答案 0 :(得分:2)

有点糟糕,因为解析器没有提供任何帮助,并且解决方案很糟糕,因为它的实时等待循环如下:

function sleep(milliseconds) {
  var start = new Date().getTime();
  for (var i = 0; i < 1e7; i++) {
    if ((new Date().getTime() - start) > milliseconds) {
      break;
    }
  }
}

每次保存后您都会调用它来限制整体吞吐量。

答案 1 :(得分:1)

Thanks danh and Wain.

I ended up using a background job run every 5 mins that queried the updatedAt date for records that were less than today.

document.addEventListener("online", function toggleCon(e, $route) {
    if (e.type == "offline") {
        navigator.notification.alert("Sorry, you are offline.", function() {}, "Offline!");
    } else {
        //  navigator.notification.alert("Woot, you are back online.", function () { }, "Online!");
        $route.reload();
    }
}, false);