我有以下逻辑,并希望使用parse
实现它1)添加具有计划时间的Feed对象 2)保存对象后 - >安排将在Feed计划时间运行的后台作业 3)当饲料计划时间到来时,使用解析安装将带有饲料数据的推送通知发送给用户
我的代码如下:
Parse.Cloud.afterSave("Feed", function(request) {
// schedule background job here
});
// this is the code of my cloud job
Parse.Cloud.job("schedulePush", function(request, status) {
Parse.Cloud.useMasterKey();
var query = new Parse.Query(Parse.Installation);
var message = {"message" : "Hello world!"}
query.each(function(installation) {
Parse.Push.send({
where:query,
data: {
"notification_info": {"message" : "hello world!"}
},
}
).then(function() {
console.log("Push was sent successfully | " + message)
}, function(error) {
response.error("Push failed to send with error: " + error.message);
});
}).then(function() {
status.success("schedulePush completed successfully.");
}, function(error) {
status.error("Uh oh, something went wrong." + error.message);
});
});
答案 0 :(得分:1)
首先,改变
Parse.Cloud.job("schedulePush", function(request, status) {
到
Parse.Cloud.define("schedulePush", function(request, response) {
因为它可以是常规功能(超时15秒,请注意)。这也意味着将status.success
和status.error
更改为response.success
和response.error
。
其次,你的顶级功能需要:
Parse.Cloud.afterSave("Feed", function(request) {
// schedule background job here
Parse.Cloud.run("schedulePush", function(request, response) {
// handle response here
});
});
我键入了这个而不能运行它,所以我可能会在一两句语法上。但这可以让您了解自己需要做什么。