我每天都在使用Cloud Code来更新所有用户。它曾经工作,但现在处理5分钟后出现错误。 "该服务目前无法使用"没有任何理由。我已经检查过status.parse.com并且没有相关信息。我有10 000名用户。
Parse.Cloud.job("makeUsersPassiveAndSendPushes", function(request, status) {
Parse.Cloud.useMasterKey();
var activeUsers = [];
var limitDoneUsers = [];
var nowDate=new Date();
var updatedUsers = [];
var query = new Parse.Query(Parse.User);
query.equalTo("passive",false);
query.each(function(user) {
if(user.get("passive") === false){
activeUsers.push(user);
user.set("passive", true);
user.set("passiveDate",nowDate);
}
if(user.get("isLimitDone")){
limitDoneUsers.push(user);
}
user.set("isLimitDone",false);
user.set("activeMatch",null);
user.set("canGetMatch",true);
user.set("dailyMatchEndCount",0);
//user.set("lastMatchLimit",false);
user.set("todaysMatches",[]);
updatedUsers.push(user);
return user.save();
})
你可以帮帮我吗?感谢。
答案 0 :(得分:0)
您可能想尝试修改以下的最后一行:
return user.save();
使用保存功能的回调,以确保它们按顺序触发:
return user.save(null, {
success: function (user) {
return user;
},
error: function (error) {
return Parse.Promise.error(new Error("error"));
}
});
另一种选择是使用saveAll函数,如下所示:
return Parse.Object.saveAll(updatedUsers).then(function() {
//code that fires after all objects are saved
});
此外,您使用托管的Parse.com环境还是已转换到Heroku& amp; MLAB?
作为具有同样问题的Parse用户(执行多次插入时后台作业因此错误而失败),我期待您的任何评论。