在 parse.com 中保存对象后计划后台作业

schedule background job after save object in parse.com

本文关键字:计划 后台作业 对象 保存 parse com      更新时间:2023-09-26

我有以下逻辑,想使用 parse 实现它

1) 添加带有计划时间的提要对象2) 保存对象后 -->调度将在源调度时间运行的后台作业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);
  });
});

首先,更改

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
   });
});

我在无法运行它的情况下键入了它,所以我可能会偏离一两个语法点。但这可以让您了解需要做什么。