From 8949a076eb6eeb3d81f461b0de30a64972df4a8c Mon Sep 17 00:00:00 2001 From: =?utf8?q?=C3=86var=20Arnfj=C3=B6r=C3=B0=20Bjarmason?= Date: Sat, 10 Sep 2005 12:45:45 +0000 Subject: [PATCH] * (bug 3410) Fixing script to delete stale memcached entries --- maintenance/deleteImageMemcached.php | 57 ++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 maintenance/deleteImageMemcached.php 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(); -- 2.20.1