通过 Cron 获取产品集合
Getting a product collection via Cron
我设置了一个 cron 作业,我需要在其中获取所有简单的产品。
当我手动 运行 脚本时,这工作得很好,但是当 Cron 运行它时,它无法检索产品。
我一直在努力找出到底出了什么问题,但似乎没有记录任何与此相关的错误。
我的猜测是,这可能与 运行 从管理面板手动设置商店的 cron 作业或类似的事情有关。我也尝试在 cron 作业中手动设置它。
我还测试了是否可以使用正常的 Mage::getModel('catalog/product')->load($productId)
检索单个产品。
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
try{
$i = 0;
$productCollection = Mage::getResourceModel('catalog/product_collection')
->addStoreFilter(0)
->addAttributeToSelect('entity_id')
->addAttributeToSelect('parent_sku')
->addAttributeToSelect('qty')
->addAttributeToFilter('status', Mage_Catalog_Model_Product_Status::STATUS_ENABLED)
->addAttributeToFilter('type_id', array('eq' => 'simple'));
Mage::log($productCollection->getSelect()->__toString(), null, 'cronlog.log');
foreach ($productCollection as $product) {
$this->updateStock($product);
}
} catch (Exception $e){
Mage::logException("Exception with aggregating stock");
throw new Exception($e->getMessage());
}
Mage::app()->cleanCache('catalog_product_view');
我设法找到了问题的原因。似乎当 cron 自动 运行 时,脚本 运行 内存不足。
我在脚本顶部添加了 ini_set('memory_limit','800M');
,这解决了我的问题
我设置了一个 cron 作业,我需要在其中获取所有简单的产品。 当我手动 运行 脚本时,这工作得很好,但是当 Cron 运行它时,它无法检索产品。
我一直在努力找出到底出了什么问题,但似乎没有记录任何与此相关的错误。
我的猜测是,这可能与 运行 从管理面板手动设置商店的 cron 作业或类似的事情有关。我也尝试在 cron 作业中手动设置它。
我还测试了是否可以使用正常的 Mage::getModel('catalog/product')->load($productId)
检索单个产品。
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
try{
$i = 0;
$productCollection = Mage::getResourceModel('catalog/product_collection')
->addStoreFilter(0)
->addAttributeToSelect('entity_id')
->addAttributeToSelect('parent_sku')
->addAttributeToSelect('qty')
->addAttributeToFilter('status', Mage_Catalog_Model_Product_Status::STATUS_ENABLED)
->addAttributeToFilter('type_id', array('eq' => 'simple'));
Mage::log($productCollection->getSelect()->__toString(), null, 'cronlog.log');
foreach ($productCollection as $product) {
$this->updateStock($product);
}
} catch (Exception $e){
Mage::logException("Exception with aggregating stock");
throw new Exception($e->getMessage());
}
Mage::app()->cleanCache('catalog_product_view');
我设法找到了问题的原因。似乎当 cron 自动 运行 时,脚本 运行 内存不足。
我在脚本顶部添加了 ini_set('memory_limit','800M');
,这解决了我的问题