~vcs-imports/stellarium-website/trunk

« back to all changes in this revision

Viewing changes to wiki/maintenance/gearman/gearmanRefreshLinks.php

  • Committer: Matthew Gates
  • Date: 2010-12-24 21:26:07 UTC
  • Revision ID: matthewg42@gmail.com-20101224212607-rjlt7qam0160puxb
added wiki directory but without LocalSettings.php; added util directory w/ 2 scripts

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?php
 
2
 
 
3
$optionsWithArgs = array( 'fake-job' );
 
4
 
 
5
require( dirname(__FILE__).'/../commandLine.inc' );
 
6
require( dirname(__FILE__).'/gearman.inc' );
 
7
 
 
8
if ( !$args ) {
 
9
        $args = array( 'localhost' );
 
10
}
 
11
$client = new Net_Gearman_Client( $args );
 
12
$batchSize = 1000;
 
13
 
 
14
$dbr = wfGetDB( DB_SLAVE );
 
15
$startId = 0;
 
16
$endId = $dbr->selectField( 'page', 'MAX(page_id)', false, __METHOD__ );
 
17
while ( true ) {
 
18
        $res = $dbr->select( 
 
19
                'page', 
 
20
                array( 'page_namespace', 'page_title', 'page_id' ),
 
21
                array( 'page_id > ' . intval( $startId ) ), 
 
22
                __METHOD__,
 
23
                array( 'LIMIT' => $batchSize ) 
 
24
        );
 
25
 
 
26
        if ( $res->numRows() == 0 ) {
 
27
                break;
 
28
        }
 
29
        $set = new Net_Gearman_Set;
 
30
        foreach ( $res as $row ) {
 
31
                $startId = $row->page_id;
 
32
                $title = Title::makeTitle( $row->page_namespace, $row->page_title );
 
33
                $params = array(
 
34
                        'wiki' => wfWikiID(),
 
35
                        'title' => $title->getPrefixedDBkey(),
 
36
                        'command' => 'refreshLinks',
 
37
                        'params' => false,
 
38
                );
 
39
                $task = new Net_Gearman_Task( 'mw_job', $params );
 
40
                $set->addTask( $task );
 
41
        }
 
42
        $client->runSet( $set );
 
43
        print "$startId / $endId\n";
 
44
}
 
45