X-Git-Url: http://git.heureux-cyclage.org/?a=blobdiff_plain;f=maintenance%2FpurgeChangedPages.php;h=8ecd810ff2274f349aac89828612af4ef36c3893;hb=a373238c905b58c8fa60fd6a308448ee23302beb;hp=feeac92b0eaa21edb3ec27a81080485102190a6f;hpb=26e157d31135fd4c74a7e0544722a69face4d6df;p=lhc%2Fweb%2Fwiklou.git diff --git a/maintenance/purgeChangedPages.php b/maintenance/purgeChangedPages.php index feeac92b0e..8ecd810ff2 100644 --- a/maintenance/purgeChangedPages.php +++ b/maintenance/purgeChangedPages.php @@ -23,7 +23,7 @@ require_once __DIR__ . '/Maintenance.php'; -use Wikimedia\Rdbms\ResultWrapper; +use Wikimedia\Rdbms\IResultWrapper; /** * Maintenance script that sends purge requests for pages edited in a date @@ -99,7 +99,7 @@ class PurgeChangedPages extends Maintenance { __METHOD__, [ 'ORDER BY' => 'rev_timestamp', 'LIMIT' => $bSize ], [ - 'page' => [ 'INNER JOIN', 'rev_page=page_id' ], + 'page' => [ 'JOIN', 'rev_page=page_id' ], ] ); @@ -136,9 +136,9 @@ class PurgeChangedPages extends Maintenance { } } - // Send batch of purge requests out to squids - $squid = new CdnCacheUpdate( $urls, count( $urls ) ); - $squid->doUpdate(); + // Send batch of purge requests out to CDN servers + $cdn = new CdnCacheUpdate( $urls, count( $urls ) ); + $cdn->doUpdate(); if ( $this->hasOption( 'sleep-per-batch' ) ) { // sleep-per-batch is milliseconds, usleep wants micro seconds. @@ -163,30 +163,38 @@ class PurgeChangedPages extends Maintenance { * * @todo move this elsewhere * - * @param ResultWrapper $res Query result sorted by $column (ascending) + * @param IResultWrapper $res Query result sorted by $column (ascending) * @param string $column * @param int $limit * @return array (array of rows, string column value) */ - protected function pageableSortedRows( ResultWrapper $res, $column, $limit ) { + protected function pageableSortedRows( IResultWrapper $res, $column, $limit ) { $rows = iterator_to_array( $res, false ); - $count = count( $rows ); - if ( !$count ) { - return [ [], null ]; // nothing to do - } elseif ( $count < $limit ) { - return [ $rows, $rows[$count - 1]->$column ]; // no more rows left + + // Nothing to do + if ( !$rows ) { + return [ [], null ]; + } + + $lastValue = end( $rows )->$column; + if ( count( $rows ) < $limit ) { + return [ $rows, $lastValue ]; } - $lastValue = $rows[$count - 1]->$column; // should be the highest - for ( $i = $count - 1; $i >= 0; --$i ) { - if ( $rows[$i]->$column === $lastValue ) { - unset( $rows[$i] ); - } else { + + for ( $i = count( $rows ) - 1; $i >= 0; --$i ) { + if ( $rows[$i]->$column !== $lastValue ) { break; } + + unset( $rows[$i] ); + } + + // No more rows left + if ( !$rows ) { + return [ [], null ]; } - $lastValueLeft = count( $rows ) ? $rows[count( $rows ) - 1]->$column : null; - return [ $rows, $lastValueLeft ]; + return [ $rows, end( $rows )->$column ]; } }