Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 解析错误代码1尝试运行作业时出现内部错误_Javascript_Parse Platform - Fatal编程技术网

Javascript 解析错误代码1尝试运行作业时出现内部错误

Javascript 解析错误代码1尝试运行作业时出现内部错误,javascript,parse-platform,Javascript,Parse Platform,我有下面的工作,我已经创建了清理不需要的记录。我简化了下面的代码以排除根本原因,但仅此而已,我运行它时80%以上的时间都无法找到任何原因,原因是错误代码1“内部错误”: 我目前有大约568k张唱片。这比我开始运行这个清理记录的任务时的800k要低。它通常运行得很好,但从那时起,它就开始非常稳定地出错。我做错了什么 编辑: 我已经将限制降低到50,并且执行的成功率更高。在100(默认值)时,它仍然经常失败。无论如何,我是否可以将其恢复到1000,以便更快地通过其余记录?这是基于一个较弱的理论,即较

我有下面的工作,我已经创建了清理不需要的记录。我简化了下面的代码以排除根本原因,但仅此而已,我运行它时80%以上的时间都无法找到任何原因,原因是错误代码1“内部错误”:

我目前有大约568k张唱片。这比我开始运行这个清理记录的任务时的800k要低。它通常运行得很好,但从那时起,它就开始非常稳定地出错。我做错了什么

编辑:


我已经将限制降低到50,并且执行的成功率更高。在100(默认值)时,它仍然经常失败。无论如何,我是否可以将其恢复到1000,以便更快地通过其余记录?

这是基于一个较弱的理论,即较小的限制将有所帮助(如果它确实是一个超时问题,希望是每个查询超时,而不是每个作业超时,否则这个想法将毫无帮助)。但这里有一个如何使用limit/skip进行大型查找的想法:

function findN(query, results) {
    results = results || [];
    query.skip(results.length);
    return query.find().then(function(findResults) {
        results = results.concat(findResults);
        return (findResults.length === 0)? results : findN(query, results);
    });
}

// to run this, build a query 
var query = new Parse.Query("MyClass");
// qualify the query however you wish
// set any limit up to 1000, but our guess is that yours should be small
query.limit(20);
var results = [];
findN(query, results).then(function(r) {
    console.log("found " + r.length + " rows");
    // r will contain all of the rows matching the query, found 20 at a time
});

“内部错误”通常意味着——一个内部错误——你可能应该提交一份错误报告。这有助于将限制降低到较小的程度吗?这可能只是因为记录大小和访问1000以确定doesnotexist的组合导致您超过了某个作业的最大请求时间。较小的限制和浏览可能会有所帮助。用答案更新帖子@danh,我该如何使用光标将限制恢复到1000?标记由@danh解决。它并没有完全解决我的问题,但却让我找到了一个理想的解决方案。我达到了一个降低查询限制的点,直到我达到1,它仍然会失败。然后我将skip设置为1,并能够将其恢复到1000,因此我相信查询结果中有一条记录导致了问题。我现在使用danh代码的一个变体来批处理多组记录,以便在一次作业运行中删除1000多条记录。
function findN(query, results) {
    results = results || [];
    query.skip(results.length);
    return query.find().then(function(findResults) {
        results = results.concat(findResults);
        return (findResults.length === 0)? results : findN(query, results);
    });
}

// to run this, build a query 
var query = new Parse.Query("MyClass");
// qualify the query however you wish
// set any limit up to 1000, but our guess is that yours should be small
query.limit(20);
var results = [];
findN(query, results).then(function(r) {
    console.log("found " + r.length + " rows");
    // r will contain all of the rows matching the query, found 20 at a time
});