我正在写一份我想在 Parse 的后台每小时运行一次的工作。我的数据库有两个表。第一个包含Question
s 的列表,而第二个列出所有用户\问题协议对 ( QuestionAgreement
s)。最初我的计划只是让客户端QuestionAgreement
自己计算 s,但我发现这会导致很多请求确实可以取消,所以我希望这个后台作业运行计数,然后更新字段直接Question
用它。
这是我的尝试:
Parse.Cloud.job("updateQuestionAgreementCounts", function(request, status) {
Parse.Cloud.useMasterKey();
var query = new Parse.Query("Question");
query.each(function(question) {
var agreementQuery = new Parse.Query("QuestionAgreement");
agreementQuery.equalTo("question", question);
agreementQuery.count({
success: function(count) {
question.set("agreementCount", count);
question.save(null, null);
}
});
}).then(function() {
status.success("Finished updating Question Agreement Counts.");
}, function(error) {
status.error("Failed to update Question Agreement Counts.")
});
});
问题是,这似乎只在几个Question
s 上运行,然后停止,在 Parse Dashboard 的 Job Status 部分显示为“成功”。我怀疑问题是它过早地返回。以下是我的问题:
1 - 我怎样才能防止它过早返回?(假设这是,事实上,我的问题。)
2 - 调试云代码的最佳方法是什么?由于这不是客户端,我没有办法设置断点或任何东西,对吗?