X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=maintenance%2FupdateSpecialPages.php;h=94b5f205980852cf93b2bada4a4d33b9507b1c82;hb=440947b4875d9e1c2b44077f9ba73ff797c8bcb7;hp=ed06855a143f0a16ace27b2c922edefbe1178693;hpb=96e1de79676f39ef96eb862195700b255363ef74;p=lhc%2Fweb%2Fwiklou.git diff --git a/maintenance/updateSpecialPages.php b/maintenance/updateSpecialPages.php index ed06855a14..94b5f20598 100644 --- a/maintenance/updateSpecialPages.php +++ b/maintenance/updateSpecialPages.php @@ -5,19 +5,20 @@ $options = array('only','help'); require_once( 'commandLine.inc' ); -require_once( 'SpecialPage.php' ); -require_once( 'QueryPage.php' ); +require_once( "$IP/includes/SpecialPage.php" ); +require_once( "$IP/includes/QueryPage.php" ); if(@$options['help']) { print "usage:updateSpecialPages.php [--help] [--only=page]\n"; print " --help : this help message\n"; print " --list : list special pages names\n"; print " --only=page : only update 'page'. Ex: --only=BrokenRedirects\n"; + print " --override : update even pages which have had updates disabled\n"; wfDie(); } $wgOut->disable(); -$dbw =& wfGetDB( DB_MASTER ); +$dbw = wfGetDB( DB_MASTER ); foreach ( $wgQueryPages as $page ) { @list( $class, $special, $limit ) = $page; @@ -28,6 +29,11 @@ foreach ( $wgQueryPages as $page ) { continue; } + if ( !isset( $options['override'] ) && $wgDisableQueryPageUpdate && in_array( $special, $wgDisableQueryPageUpdate ) ) { + printf("%-30s disabled\n", $special); + continue; + } + $specialObj = SpecialPage::getPage( $special ); if ( !$specialObj ) { print "No such special page: $special\n"; @@ -40,7 +46,7 @@ foreach ( $wgQueryPages as $page ) { $queryPage = new $class; if( !(isset($options['only'])) or ($options['only'] == $queryPage->getName()) ) { - printf( '%-30s', $special ); + printf( '%-30s ', $special ); if ( $queryPage->isExpensive() ) { $t1 = explode( ' ', microtime() ); @@ -67,12 +73,12 @@ foreach ( $wgQueryPages as $page ) { } # Reopen any connections that have closed - if ( !$wgLoadBalancer->pingAll()) { + if ( !wfGetLB()->pingAll()) { print "\n"; do { print "Connection failed, reconnecting in 10 seconds...\n"; sleep(10); - } while ( !$wgLoadBalancer->pingAll() ); + } while ( !wfGetLB()->pingAll() ); print "Reconnected\n\n"; } else { # Commit the results @@ -80,12 +86,15 @@ foreach ( $wgQueryPages as $page ) { } # Wait for the slave to catch up - $slaveDB =& wfGetDB( DB_SLAVE, array('QueryPage::recache', 'vslow' ) ); + /* + $slaveDB = wfGetDB( DB_SLAVE, array('QueryPage::recache', 'vslow' ) ); while( $slaveDB->getLag() > 600 ) { print "Slave lagged, waiting...\n"; sleep(30); } + */ + wfWaitForSlaves( 5 ); } else { print "cheap, skipped\n"; @@ -93,4 +102,4 @@ foreach ( $wgQueryPages as $page ) { } } -?> +