node.js CALL_AND_RETRY_LAST分配失败 - 处理内存不足错误

时间:2015-08-02 16:15:50

标签: node.js mongodb

我在forEach循环期间遇到了这个问题,我的对象是xml2js解析的xml内部循环来自mongoDB的'products'对象: 所以我的代码在这里:

select Date1,  Date2
from 
    (SELECT Month(Date1) as date1 --Alias missing Here
     FROM Table1 
     GROUP BY Date1) t1
left join
    (SELECT Month(Date2) as date2 --Alias missing here
     FROM Table2 
     GROUP BY Date2) t2
on
    t1.Date1 = t2.Date2

所以在一些周期后我遇到 Product.find(function(err, products){ if(err)return updateDBCallback(err); if(products.length > 0) { products.forEach(function (dbProduct) { var equals = false; xmlFile.product_list.product.forEach(function (product) { var productEntity = new Product({ product_id: parseInt(product.id), parent_id: parseInt(product.parent_id), sku: product.sku, title: product.title, pricenormal: parseFloat(product.price_normal), pricewholesale: parseFloat(product.price_wholesale), pricewholesalelarge: parseFloat(product.price_wholesale_large), pricesale: parseFloat(product.price_sale), weight: parseFloat(product.weight), volume: parseFloat(product.volume), unittype: product.unit_type, status: product.status, datecreating: product.datecreating, sp: product.sp, guaranteeext: product.guarantee_ext, used: product.used, statusfull: product.status_full, description: null, url: null }); items.push(productEntity); if (dbProduct.product_id === productEntity.product_id){ log.info(" produt eqauls " + dbProduct.product_id + " =" + productEntity.product_id ); equals = true; } }); if (!equals) { log.warn("Remove PRODUCT " + dbProduct); Product.remove({ _id: dbProduct._id }, function (err) { if (err) return updateDBCallback(err); }); } }); 错误。我看到了类似的问题,有人说CALL_AND_RETRY_LAST Allocation failed - process out of memory ERROR参数可以解决问题。但为什么会这样呢?

UPDATE1: 我想我在-max_old_space_size中发现了问题,所以我的数据库中有5000个项目,'xmlfile'有5000个产品,所以我的项目数组增长到非常大的颜色

0 个答案:

没有答案