
bsitu at svn
Apr 14, 2012, 8:29 AM
Post #1 of 1
(36 views)
Permalink
|
|
SVN: [114910] trunk/extensions/PageTriage
|
|
https://www.mediawiki.org/wiki/Special:Code/MediaWiki/114910 Revision: 114910 Author: bsitu Date: 2012-04-14 15:29:50 +0000 (Sat, 14 Apr 2012) Log Message: ----------- followup to -r114905 - Cleanup index and make corresponding changes to the maintenance script Modified Paths: -------------- trunk/extensions/PageTriage/PageTriage.php trunk/extensions/PageTriage/cron/updateUserMetadata.php trunk/extensions/PageTriage/sql/PageTriagePage.sql Modified: trunk/extensions/PageTriage/PageTriage.php =================================================================== --- trunk/extensions/PageTriage/PageTriage.php 2012-04-14 14:37:26 UTC (rev 114909) +++ trunk/extensions/PageTriage/PageTriage.php 2012-04-14 15:29:50 UTC (rev 114910) @@ -115,8 +115,6 @@ $updater->addExtensionTable( 'pagetriage_page_tags', $base . '/PageTriagePageTags.sql' ); $updater->addExtensionTable( 'pagetriage_page', $base . '/PageTriagePage.sql' ); $updater->addExtensionTable( 'pagetriage_log', $base . '/PageTriageLog.sql' ); - $updater->addExtensionUpdate( array( 'addField', 'pagetriage_page', 'ptrp_tags_updated', - $base . '/PageTriageTimestamps.patch.sql', true ) ); return true; } Modified: trunk/extensions/PageTriage/cron/updateUserMetadata.php =================================================================== --- trunk/extensions/PageTriage/cron/updateUserMetadata.php 2012-04-14 14:37:26 UTC (rev 114909) +++ trunk/extensions/PageTriage/cron/updateUserMetadata.php 2012-04-14 15:29:50 UTC (rev 114910) @@ -36,28 +36,37 @@ $this->init(); $this->output( "Started processing... \n" ); - // Make the start time really old - $startTime = wfTimestamp( TS_UNIX ) - 60 * 60 * 24 * 365 * 10; + // Scan for data updated more than a day ago + $startTime = wfTimestamp( TS_UNIX ) - 60 * 60 * 24; $count = $this->batchSize; - $startId = 0; + $row = $this->dbr->selectRow( + array( 'pagetriage_page' ), + array( 'MAX(ptrp_page_id) AS max_id' ), + array(), + __METHOD__ + ); + + // No data to process, exit + if ( $row === false ) { + return; + } + + $startId = $row->max_id + 1; + while ( $count === $this->batchSize ) { $count = 0; $startTime = $this->dbr->addQuotes( $this->dbr->timestamp( $startTime ) ); - // Data should expire in a day, keep this inside loop so - // it's update to second - $expiration = wfTimestamp( TS_UNIX ) - 60 * 60 * 24; $res = $this->dbr->select( array( 'pagetriage_page' ), - array( 'ptrp_page_id', 'ptrp_created' ), + array( 'ptrp_page_id', 'ptrp_tags_updated' ), array( - '(ptrp_created > ' . $startTime . ') OR - (ptrp_created = ' . $startTime . ' AND ptrp_page_id > ' . $startId . ')', - 'ptrp_tags_updated < ' . $this->dbr->addQuotes( $this->dbr->timestamp( $expiration ) ) + '(ptrp_tags_updated < ' . $startTime . ') OR + (ptrp_tags_updated = ' . $startTime . ' AND ptrp_page_id < ' . $startId . ')' ), __METHOD__, - array( 'LIMIT' => $this->batchSize, 'ORDER BY' => 'ptrp_created, ptrp_page_id' ) + array( 'LIMIT' => $this->batchSize, 'ORDER BY' => 'ptrp_tags_updated DESC, ptrp_page_id DESC' ) ); $pageId = array(); @@ -67,8 +76,10 @@ } if ( $pageId ) { - // update the startTime with the last row - $startTime = wfTimestamp( TS_UNIX, $row->ptrp_created ); + // update the startTime with the last row if it's set, check in case it's not set + if ( $row->ptrp_tags_updated ) { + $startTime = wfTimestamp( TS_UNIX, $row->ptrp_tags_updated ); + } $startId = $row->ptrp_page_id; $acp = ArticleCompileProcessor::newFromPageId( $pageId ); Modified: trunk/extensions/PageTriage/sql/PageTriagePage.sql =================================================================== --- trunk/extensions/PageTriage/sql/PageTriagePage.sql 2012-04-14 14:37:26 UTC (rev 114909) +++ trunk/extensions/PageTriage/sql/PageTriagePage.sql 2012-04-14 15:29:50 UTC (rev 114910) @@ -3,9 +3,11 @@ ptrp_page_id int unsigned NOT NULL PRIMARY KEY, ptrp_reviewed tinyint unsigned NOT NULL DEFAULT 0, ptrp_deleted tinyint unsigned NOT NULL DEFAULT 0, - ptrp_timestamp varbinary(14) NOT NULL + ptrp_created VARBINARY(14) NOT NULL, + ptrp_tags_updated VARBINARY(14) NOT NULL ) /*$wgDBTableOptions*/; -CREATE INDEX /*i*/ptrp_reviewed_timestamp_page_id ON /*_*/pagetriage_page (ptrp_reviewed, ptrp_timestamp, ptrp_page_id, ptrp_deleted); -CREATE INDEX /*i*/ptrp_timestamp_page_id ON /*_*/pagetriage_page (ptrp_timestamp, ptrp_page_id, ptrp_deleted); -CREATE INDEX /*i*/ptrp_deleted_reviewed_etc ON /*_*/pagetriage_page (ptrp_deleted, ptrp_timestamp, ptrp_page_id, ptrp_reviewed); +CREATE INDEX /*i*/ptrp_reviewed_created_page_del ON /*_*/pagetriage_page (ptrp_reviewed, ptrp_created, ptrp_page_id, ptrp_deleted); +CREATE INDEX /*i*/ptrp_created_page_del ON /*_*/pagetriage_page (ptrp_created, ptrp_page_id, ptrp_deleted); +CREATE INDEX /*i*/ptrp_del_created_page_reviewed ON /*_*/pagetriage_page (ptrp_deleted, ptrp_created, ptrp_page_id, ptrp_reviewed); +CREATE INDEX /*i*/ptrp_updated_page_reviewed ON /*_*/pagetriage_page (ptrp_tags_updated, ptrp_page_id, ptrp_reviewed); _______________________________________________ MediaWiki-CVS mailing list MediaWiki-CVS [at] lists https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs
|