我正在使用後臺作業來查詢具有數千個對象的json以最初填充我的數據庫。我也實現了beforesave函數來防止任何重複的條目。但是,一旦我實現了這個,看起來我的後臺作業叫做response.error,並不保存所有的對象。看起來我可能超過請求/秒?如果有人可以看看我的代碼並告訴我爲什麼它不能成功保存所有條目,我將不勝感激。Failing在使用數千個對象之前使用beforesave時解析後臺作業
這裏是我的後臺作業:
Parse.Cloud.job("testing", function(request, response) {
var json;
Parse.Cloud.httpRequest({
url: stringURL + pageNumber.toString(),
success: function(httpResponse) {
json = httpResponse.data;
console.log("total is: " + json["meta"].total);
console.log("object 1 is: " + json["events"][1].title);
return json;
}
//after getting the json, save all 1000
}).then(function() {
//helper function called
saveObjects(json).then(function() {
response.success("success");
},
function(error) {
response.error("nooooo");
});
});
});
function saveObjects(json) {
var promises = [];
for(var i = 0; i < 1000; i++) {
var newEvent = new Event();
promises.push(newEvent.save(new Event(json["events"][i])));
}
return Parse.Promise.when(promises);
}
這裏是我的beforesave代碼:
Parse.Cloud.beforeSave("Event", function(request, response) {
var newEvent = request.object;
var Event = Parse.Object.extend("Event");
var query = new Parse.Query("Event");
query.equalTo("title", newEvent.get("title"));
query.equalTo("datetime_utc", newEvent.get("datetime_utc"));
query.equalTo("url", newEvent.get("url"));
query.first({
success: function(temp) {
response.error({errorCode:123,errorMsg:"Event already exist!"});
},
error: function(error) {
response.success();
}
});
});
感謝我真的很感激任何幫助......我一直堅持了一段時間所。