gpt4 book ai didi

javascript - 如何在本地运行 Parse 后台作业

转载 作者:行者123 更新时间:2023-11-29 15:31:49 25 4
gpt4 key购买 nike

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

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

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

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

status.success("Hello world!");

});

我有两个问题:

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

最佳答案

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

为了让它工作,您需要在 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);

关于javascript - 如何在本地运行 Parse 后台作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34098476/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com