3 * This script delete image information from memcached.
6 * php deleteImageMemcached.php --until "2005-09-05 00:00:00" --sleep 0
12 require_once( "Maintenance.php" );
14 class DeleteImageCache
extends Maintenance
{
15 public function __construct() {
16 parent
::__construct();
17 $this->mDescription
= "Delete image information from memcached";
18 $this->addParam( 'sleep', 'How many seconds to sleep between deletions', true, true );
19 $this->addParam( 'until', 'Timestamp to delete all entries prior to', true, true );
22 public function execute() {
25 $until = preg_replace( "/[^\d]/", '', $this->getOption('until') );
26 $sleep = (int)$this->getOption('sleep') * 1000; // milliseconds
28 ini_set( 'display_errors', false );
30 $dbr = wfGetDB( DB_SLAVE
);
32 $res = $dbr->select( 'image',
34 array( "img_timestamp < {$until}" ),
39 $total = $this->getImageCount();
41 while ( $row = $dbr->fetchObject( $res ) ) {
42 if ($i %
$this->report
== 0)
43 $this->output( sprintf("%s: %13s done (%s)\n", wfWikiID(), "$i/$total", wfPercent( $i / $total * 100 ) ) );
44 $md5 = md5( $row->img_name
);
45 $wgMemc->delete( wfMemcKey( 'Image', $md5 ) );
54 private function getImageCount() {
55 $dbr = wfGetDB( DB_SLAVE
);
56 return $dbr->selectField( 'image', 'COUNT(*)', array(), __METHOD__
);
60 $maintClass = "DeleteImageCache";
61 require_once( DO_MAINTENANCE
);