在parse.com中保存对象后安排后台作业

时间:2015-03-17 12:26:07

标签: javascript parse-platform

我有以下逻辑,并希望使用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);
  });
});

1 个答案:

答案 0 :(得分:1)

首先,改变

Parse.Cloud.job("schedulePush", function(request, status) {

Parse.Cloud.define("schedulePush", function(request, response) {

因为它可以是常规功能(超时15秒,请注意)。这也意味着将status.successstatus.error更改为response.successresponse.error

其次,你的顶级功能需要:

Parse.Cloud.afterSave("Feed", function(request) {

   // schedule background job here 
   Parse.Cloud.run("schedulePush", function(request, response) {
       // handle response here
   });

});

我键入了这个而不能运行它,所以我可能会在一两句语法上。但这可以让您了解自己需要做什么。

相关问题