我有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);
}
});
});
我将非常感谢有关如何做到这一点的任何提示或建议!
我的下一个停靠点是在本地清理数据然后上传,但我已经做到了这一点......
答案 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);