すべての製品 (cron 内) に対して単純なループを実行して、ブロックを生成し、結果をキャッシュします。
ただし、toHhtml メソッドを使用すると、memory_get_usage() を製品ごとに約 0.1M まで増やすことができます
getModel のロードの影響を減らすことができますが、toHTML はそれを殺します
foreach($products as $productid) {
// leaks but clear instance helps
$model = Mage::getModel("catalog/product")->load($productid);
$block1 = Mage::app()->getLayout()->createBlock("catalog/product_list_upsell");
$block1 = $block1->setTemplate("catalog/product/list/upsell.phtml");
// kills it
cacheContent($block1->toHTml());
// this helps
$model->clearInstance();
}
各ループ項目を個別のphp呼び出しで処理することを除いて、何か考えはありますか?