121月/05
だいたい復旧したかな (14:36)
ただしばらくの間腐ったキャッシュが蔓延していたりするかも。あと、データの二重登録とかも多少起こる可能性あり。検索インデックスにも結構腐ったデータが登録されちゃってるけど、そっちは時間と共に流されていくのを待とう。
ちなみに何をやっちゃったかというと、RSS巡回時のオブジェクトの初期化処理をはしょろうかと思って、
$rss =& new XML_RSS();
foreach ($rss_urls as $website => $rss_url) {
$rss_text = get_rss_text($rss_url);
//$rss =& new XML_RSS();
$rss->setInputString($rss_text);
$rss->parse();
add_rssitem_to_website($website, $rss->getItems());
}
なんて感じ(↑実際のコードとは違うよ)に変えたんだけど、そうすると$rss->items(getItemsで取得される実体)が初期化されない(setInputStringかparse前あたりで初期化されるもんだと思いこんでいた)んで、parseするたびに$rss->itemsが前回parseした内容に追加されていってしまい、重複したアイテムがひたすら次に巡回したサイトのアイテムとしても登録されていき……という話でした。アホですね。
121月/05
うわ、やっちゃった (12:18)
高速化のために一部の初期化をはしょったら、タイムアウト発生時に(←が原因じゃなかった)他のサイトのRSSアイテムを別のサイトのアイテムとして登録する処理が大量発生していた模様。データ復旧中です。