Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.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 正在工作的云代码已停止工作。没有对代码进行任何更改_Javascript_Parse Platform - Fatal编程技术网

Javascript 正在工作的云代码已停止工作。没有对代码进行任何更改

Javascript 正在工作的云代码已停止工作。没有对代码进行任何更改,javascript,parse-platform,Javascript,Parse Platform,在过去的一个月里,我有一份工作安排得很好。但从6月4日起,我开始出现“运行的作业太多”的错误,即使没有作业在运行。我甚至试过简单的Hello World工作,但也不起作用。我提交了一个bug,但它仍然处于“分配”状态 现在,如果我检查“作业状态”面板,我有时会在两行中的任何一行(标记在下面)出错,这两行一直运行得很好。我也检查了我以前的提交,代码还是一样的。下面的错误 如果你能找到可疑的东西,请检查一下。我得到了一个表“news_cat”的列表,并一行一行地发送该行以执行httpRequest。

在过去的一个月里,我有一份工作安排得很好。但从6月4日起,我开始出现“运行的作业太多”的错误,即使没有作业在运行。我甚至试过简单的Hello World工作,但也不起作用。我提交了一个bug,但它仍然处于“分配”状态

现在,如果我检查“作业状态”面板,我有时会在两行中的任何一行(标记在下面)出错,这两行一直运行得很好。我也检查了我以前的提交,代码还是一样的。下面的错误

如果你能找到可疑的东西,请检查一下。我得到了一个表“news_cat”的列表,并一行一行地发送该行以执行httpRequest。响应被发送到另一个函数,通过使用xmlreader.js(),我从对象收集链接、标题等,并将其保存到“tointer”类。请查看:

var xmlreader = require('cloud/xmlreader.js');
var ToiInter = Parse.Object.extend("ToiInter");


//Get urls from all the newspaper-category pairs
Parse.Cloud.job("job_get_data_for_all_newspapers", function (request, response) {
    //news_cat class contains the newspaper_category pairs 
    var newsCatList = Parse.Object.extend("news_cat");
    var query = new Parse.Query(newsCatList);                                                            
    query.find().then(function(list){
        // console.log("Successfully retrieved " + list.length);

        //create array and use Promise.when to wait till it is filled
        var promisesGetNP = [];
        for (var i = 0; i < list.length; i++) { 
            promisesGetNP.push(getDataForNewspaper(list[i].get("newspaper_id_column"), list[i].get("category_id_column"), list[i].get("url_column")));
        }
        return Parse.Promise.when(promisesGetNP);

    }).then (function(result) {
            // console.log("done job");
            response.success("Saving completed successfully.");
        },function(error) {
            console.log("job not done, error - "+error.message);
            response.error("Something went wrong.");
        }
    );
}); 

//get httpResponse from a url
function getDataForNewspaper(newspaperId, catId , feedUrl){
    console.log("getData NEW & CAT ID - " + newspaperId + ", "+catId+ " feedUrl "+feedUrl);

    //create array and use Promise.when to wait till it is filled
    var promisesGetData = []; 
    return Parse.Cloud.httpRequest({
        url: feedUrl
    }).then(function(httpResponse){
        promisesGetData.push(processDataForNewspaper(httpResponse, newspaperId, catId));
        return Parse.Promise.when(promisesGetData);

    }).then(function() {
        console.log("Done getData? ");
        return Parse.Promise.as("Got Data");
    });
}

function processDataForNewspaper(httpResponse, newspaperId, catId){
    console.log("processData NEW & CAT ID - " + newspaperId + ", "+catId);
    someXml = httpResponse.text

    //using xmlreader.js and sax.js to parse xml into text
    xmlreader.read(someXml, function (err, res){
        if(err) {
            return console.log(err);
        }   

        //create a new array and push objects with data in it       
        var listArray = [];
        res.rss.channel.item.each(function (i, item){
            var newsArt = new ToiInter();
            newsArt.set("link", item.link.text());      //get error here
            newsArt.set("title", item.title.text());    //or here
            newsArt.set("pubDate", item.pubDate.text());
            newsArt.set("newspaper_id",newspaperId);
            newsArt.set("cat_id",catId);
            listArray.push(newsArt);
        });

        //create a new promises array
        var promises = new Array();
        Parse.Object.saveAll(listArray, {
                success: function(objs) {
                    promises.push(objs);
                    console.log("SAVED ALL!");
                },
                error: function(error) { 
                    console.log("ERROR WHILE SAVING - "+error.message);
                }   
            });
        return Parse.Promise.when(promises);        
    });
}

其中一个RSS源可能包含无效的XML,或者它可能提供了您可能不期望的XML结构。您可能希望将
processdataforpaper
函数的主体包装在一个try-catch中,捕获错误并至少记录爆炸的报纸Id。那可以给你一个线索。这感觉像是数据问题,因为您没有更改任何代码。@WANTOTOCODE您有解决此问题的方法吗??我也有同样类型的问题类型错误:Object[Object Object]没有方法“text”。。。请让我知道这件事issue@venkatesh我在Parse本身的一次停机期间遇到了这个问题。我通过FB帮助门户与他们联系,几天后就修复了。之后我再也没有看到这个问题了!
E2014-06-13T10:55:15.843Z] v315: Ran job job_get_data_for_all_newspapers with:
  Input: {}
  Failed with: TypeError: Object [object Object] has no method 'text'
    at main.js:146:45
    at Object.object.each (xmlreader.js:137:6)
    at main.js:143:30
    at Object.saxparser.onend (xmlreader.js:104:10)
    at emit (sax.js:616:33)
    at end (sax.js:655:3)
    at Object.write (sax.js:917:30)
    at Object.SAXParser.close (sax.js:153:38)
    at Object.exports.read (xmlreader.js:157:29)
    at processDataForNewspaper (main.js:136:15)