【问题标题】:How to run a Parse background job locally如何在本地运行 Parse 后台作业
【发布时间】:2015-12-04 22:22:31
【问题描述】:

我正在尝试在本地而不是 Parse 云中运行 Parse 后台作业。我需要 Node SDK,因为浏览器 SDK 不支持使用此作业所需的主密钥。

这是我为了在本地运行作业而尝试过的:

var Parse = require('parse-cloud-express').Parse;

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

    status.success("Hello world!");

});

我有 2 个问题:

  1. 我不知道如何实际运行该作业。我认为Parse.Cloud.job 调用只会注册它。而且我可能需要以某种方式初始化 SDK(使用 API 密钥),但我不知道如何。
  2. 当我运行此代码时,它会输出 Running jobs is not supported in parse-cloud-express,这让我相信我可能无法让它以这种方式工作。

【问题讨论】:

    标签: javascript parse-platform parse-cloud-code


    【解决方案1】:

    事实证明这比我想象的要容易得多。我仍然会发布我的解决方案,以防它对某人有所帮助。

    为了使其工作,您需要在 myBackgroundJobFile.js 文件中注册一个名为 myBackgroundJob 的作业。您还需要一个包含作业参数的params.json 文件。

    我使用eval() 而不是require,因为它允许我按原样使用文件(这意味着该文件也可以在 Parse 上使用而无需修改)。

    var fs = require('fs');
    var Parse = require('parse/node').Parse;
    var BackgroundJobs = {}
    
    var JobRequest = function (params) {
        this.params = params;
    };
    var JobStatus = function () {};
    JobStatus.prototype.error = function () {};
    JobStatus.prototype.message = function () {};
    JobStatus.prototype.success = function () {};
    
    Parse.Cloud.job = function (jobName, jobCall) {
        BackgroundJobs[jobName] = jobCall;
    };
    function callBackgroundJob(jobName, params) {
        var jobCall = BackgroundJobs[jobName];
        if (!jobCall) {
            console.error("There is no registered background job named `" + jobName + "`.");
            return Parse.Promise.error();
        } else {
            var request = new JobRequest(params);
            var status = new JobStatus();
            return jobCall(request, status);
        }
    }
    
    eval(fs.readFileSync('myBackgroundJobFile.js').toString());
    
    Parse._initialize("APPLICATION_ID", "JAVASCRIPT_KEY", "MASTER_KEY");
    Parse.Cloud.useMasterKey();
    
    var params = JSON.parse(fs.readFileSync('params.json', 'utf8'));
    callBackgroundJob("myBackgroundJob", params);
    

    【讨论】:

    • 我很好奇,这种方法是否也适用于新的解析服务器架构?
    猜你喜欢
    • 2021-12-23
    • 2012-11-26
    • 1970-01-01
    • 2017-05-23
    • 2011-06-17
    • 2021-10-05
    • 2015-03-29
    • 1970-01-01
    • 2017-10-17
    相关资源
    最近更新 更多