我目前正在为我的Parse数据库编写后台作业。 数据库包含User类中的许多用户。所有用户都有一个位置'专栏和'提供'并且'搜索'柱。 '报价'并且'搜索'存储一个字符串数组。 它应该做的是以下内容: 后台作业应该遍历所有用户并检查与他们关系密切的用户,然后检查这些用户是否与特定技能相匹配。所以,如果有人有"例如"在'搜索'而其他人有"例子"在'提供'这些用户匹配并且都收到通知。
-
Parse.Cloud.job("backgroundJob", function(request, status) {
var queryAllUser = new Parse.Query(Parse.User);
Parse.Cloud.useMasterKey();
var targetList = []; //new Array();
queryAllUser.each(function(user) {
var queryMatch = new Parse.Query(Parse.User);
queryMatch.withinKilometers("location", user.get("location"), 0.1);
//if(user.get("search") != null){
queryMatch.containedIn("offer", user.get("search"));
// }
return queryMatch.first().then(function(firstUser) {
if (firstUser != null) {
console.error("THIS IS THE FIRST USER: " + firstUser.get("name"));
}
if (firstUser) {
targetList.push(user);
}
});
}).then(function() {
console.error("Length of TargetList: " + targetList.length);
if (targetList[0] != null && targetList.length != 1) {
var queryTarget = new Parse.Query(Parse.Installation);
queryTarget.containedIn('user', targetList);
return Parse.Push.send({
where: queryTarget,
data: {
alert: "Found a Match!",
badge: "Increment",
pushType: "1",
}
}, {
success: function() {
status.success("Send the Pushes!");
},
error: function(error) {
status.error(error);
}
});
}
status.success("did the job!");
},
function(error) {
status.error("error:" + error.message);
});
});