X-Git-Url: https://scripts.mit.edu/gitweb/autoinstallsdev/mediawiki.git/blobdiff_plain/74c929b24b048c9f1e31e17db757ae4195cd7673..dc9cc5d707f5a612938cc9371614cc41c328fda2:/maintenance/gearman/gearmanRefreshLinks.php diff --git a/maintenance/gearman/gearmanRefreshLinks.php b/maintenance/gearman/gearmanRefreshLinks.php new file mode 100644 index 00000000..eb3104eb --- /dev/null +++ b/maintenance/gearman/gearmanRefreshLinks.php @@ -0,0 +1,45 @@ +selectField( 'page', 'MAX(page_id)', false, __METHOD__ ); +while ( true ) { + $res = $dbr->select( + 'page', + array( 'page_namespace', 'page_title', 'page_id' ), + array( 'page_id > ' . intval( $startId ) ), + __METHOD__, + array( 'LIMIT' => $batchSize ) + ); + + if ( $res->numRows() == 0 ) { + break; + } + $set = new Net_Gearman_Set; + foreach ( $res as $row ) { + $startId = $row->page_id; + $title = Title::makeTitle( $row->page_namespace, $row->page_title ); + $params = array( + 'wiki' => wfWikiID(), + 'title' => $title->getPrefixedDBkey(), + 'command' => 'refreshLinks', + 'params' => false, + ); + $task = new Net_Gearman_Task( 'mw_job', $params ); + $set->addTask( $task ); + } + $client->runSet( $set ); + print "$startId / $endId\n"; +} +