Javascript 解析云后台作业未通过调用.success()停止执行
我假设调用Javascript 解析云后台作业未通过调用.success()停止执行,javascript,node.js,cloud,parse-platform,jobs,Javascript,Node.js,Cloud,Parse Platform,Jobs,我假设调用status.success()会终止后台作业。但是,当我运行它时,仍然会看到第二条日志消息: Parse.Cloud.job("Tester", function (request, status) { console.log("Starting our Test ..."); status.success("done!"); // I still see this! console.log
status.success()
会终止后台作业。但是,当我运行它时,仍然会看到第二条日志消息:
Parse.Cloud.job("Tester", function (request, status) {
console.log("Starting our Test ...");
status.success("done!");
// I still see this!
console.log("We don't get here!");
});
以下是日志:
I2014-05-07T09:41:51.504Z]v344 Ran job Tester with:
Input: {}
Result: done!
I2014-05-07T09:41:51.520Z]Starting our Test ...
I2014-05-07T09:41:51.520Z]We don't get here!
I2014-05-07T09:41:51.504Z]v344运行作业测试仪时使用:
输入:{}
结果:完成!
I2014-05-07T09:41:51.520Z]开始我们的测试。。。
I2014-05-07T09:41:51.520Z]我们到不了这里!
如果不是这样,我怎么能终止工作
更新。找到一个引语,让我觉得它确实终止了工作。(显然没有): 确保您没有在>find()回调之外调用response.success(),这将过早终止您的云代码>
- 赫克托·拉莫斯大约一年前
我认为
status.success()
不会终止作业(可能status.error()
会终止)。在我看到的任何示例中,status.success()仅用于指示作业已成功完成。如果未调用status.success()
,作业将在15分钟后超时
您需要使用其他功能中止代码进程
从指南()中:
“您应该在代码完成时添加status.success()语句
成功地。”
如果您提供了一些关于需要终止作业的用例的信息,那么建议解决方案就更容易了。@handomeguy我想终止作业,例如,当外部服务器出现故障时。那么,与其继续尝试,我宁愿等待。当然,在超时之前,我不能人为地做任何事情,但我认为终止可能有用。是的,我看到其他人也在想同样的事情,但这似乎不是一种方式。我所能想到的就是对外部服务的可用性进行某种检查,也许您得到的响应的格式是正确的,然后如果这些都不正常,则调用status.error(),之后就没有代码执行了。如果在您的工作进行过程中发生了什么情况,我不认为有任何方法可以在工作超时之前中止它。我今天处理了几个小时类似的问题,结果抛出了一个异常-
抛出“您的消息”代码>。这会导致线程和异步上的所有代码终止,并移动到云函数的末尾,以查看是否有东西捕获它。如果没有任何东西捕捉到它,那也没问题,因为它仍然会将您的消息(可能是积极的消息)记录到控制台。我们必须找到一个更优雅的解决方案,以返回Parse.Promise.error(“您的消息”)
而不是抛出一个异常,该异常停止所有代码的执行,并在承诺链的末尾查找错误回调