From: Ævar Arnfjörð Bjarmason Date: Sat, 10 Sep 2005 12:45:45 +0000 (+0000) Subject: * (bug 3410) Fixing script to delete stale memcached entries X-Git-Tag: 1.6.0~1683 X-Git-Url: http://git.cyclocoop.org/%22.%24redirect_annul.%22?a=commitdiff_plain;h=8949a076eb6eeb3d81f461b0de30a64972df4a8c;p=lhc%2Fweb%2Fwiklou.git * (bug 3410) Fixing script to delete stale memcached entries --- diff --git a/maintenance/deleteImageMemcached.php b/maintenance/deleteImageMemcached.php new file mode 100644 index 0000000000..2de04ce0e8 --- /dev/null +++ b/maintenance/deleteImageMemcached.php @@ -0,0 +1,57 @@ +until = $until; + $this->sleep = $sleep; + $this->report = $report; + } + + function main() { + global $wgMemc, $wgDBname; + $fname = 'DeleteImageCache::main'; + + $dbr =& wfGetDB( DB_SLAVE ); + + $res = $dbr->select( 'image', + array( 'img_name' ), + array( "img_timestamp < {$this->until}" ), + $fname + ); + + $i = 0; + $total = $this->getImageCount(); + + while ( $row = $dbr->fetchObject( $res ) ) { + if ($i % $this->report == 0) + printf("%s: %13s done (%s)\n", $wgDBname, "$i/$total", wfPercent( $i / $total * 100 )); + $md5 = md5( $row->img_name ); + $wgMemc->delete( "$wgDBname:Image:$md5" ); + + if ($this->sleep != 0) + usleep( $this->sleep ); + + ++$i; + } + } + + function getImageCount() { + $fname = 'DeleteImageCache::getImageCount'; + + $dbr =& wfGetDB( DB_SLAVE ); + return $dbr->selectField( 'image', 'COUNT(*)', array(), $fname ); + } +} + +$until = preg_replace( "/[^\d]/", '', $options['until'] ); +$sleep = (int)$options['sleep'] * 1000; // milliseconds +$report = (int)$options['report']; + +$dic = new DeleteImageCache( $until, $sleep, $report ); +$dic->main();