From d9022f63880ce039446fba8364f68e656b7bf4cb Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Thu, 3 May 2012 13:01:35 +0200 Subject: Update to MediaWiki 1.19.0 --- maintenance/gearman/gearman.inc | 104 ---------------------------- maintenance/gearman/gearmanRefreshLinks.php | 45 ------------ maintenance/gearman/gearmanWorker.php | 43 ------------ 3 files changed, 192 deletions(-) delete mode 100644 maintenance/gearman/gearman.inc delete mode 100644 maintenance/gearman/gearmanRefreshLinks.php delete mode 100644 maintenance/gearman/gearmanWorker.php (limited to 'maintenance/gearman') diff --git a/maintenance/gearman/gearman.inc b/maintenance/gearman/gearman.inc deleted file mode 100644 index 15f80e62..00000000 --- a/maintenance/gearman/gearman.inc +++ /dev/null @@ -1,104 +0,0 @@ -complete( array( 'result' => true ) ); - socket_close( $this->conn ); - - # Close some more sockets - LBFactory::destroyInstance(); - global $wgMemc; - $wgMemc->disconnect_all(); - - # Find PHP - $php = readlink( '/proc/' . posix_getpid() . '/exe' ); - - # Run the worker script - $args = array( $_SERVER['PHP_SELF'], - '--wiki', $wiki, - '--fake-job', serialize( $params ) ); - $args = array_merge( $args, $GLOBALS['args'] ); - pcntl_exec( $php, $args, $_ENV ); - echo "Error running exec\n"; - } - - function run( $params ) { - if ( wfWikiID() !== $params['wiki'] ) { - $this->switchWiki( $params['wiki'], $params ); - } - return self::runNoSwitch( $params ); - } - - static function runNoSwitch( $params ) { - echo implode( ' ', $params ) . "\n"; - $title = Title::newFromText( $params['title'] ); - $mwJob = Job::factory( $params['command'], $title, $params['params'] ); - return $mwJob->run(); - } -} - -class NonScaryGearmanWorker extends Net_Gearman_Worker { - - /** - * Copied from Net_Gearman_Worker but with the scary "run any PHP file in - * the filesystem" feature removed. - */ - protected function doWork($socket) { - Net_Gearman_Connection::send($socket, 'grab_job'); - - $resp = array('function' => 'noop'); - while (count($resp) && $resp['function'] == 'noop') { - $resp = Net_Gearman_Connection::blockingRead($socket); - } - - if (in_array($resp['function'], array('noop', 'no_job'))) { - return false; - } - - if ($resp['function'] != 'job_assign') { - throw new Net_Gearman_Exception('Holy Cow! What are you doing?!'); - } - - $name = $resp['data']['func']; - $handle = $resp['data']['handle']; - $arg = array(); - - if (isset($resp['data']['arg']) && - Net_Gearman_Connection::stringLength($resp['data']['arg'])) { - $arg = json_decode($resp['data']['arg'], true); - } - - ### START MW DIFFERENT BIT - if ( $name != 'mw_job' ) { - throw new Net_Gearman_Job_Exception('Invalid function'); - } - $job = new MWGearmanJob($socket, $handle); - ### END MW DIFFERENT BIT - - try { - $this->start($handle, $name, $arg); - $res = $job->run($arg); - if (!is_array($res)) { - $res = array('result' => $res); - } - - $job->complete($res); - $this->complete($handle, $name, $res); - } catch (Net_Gearman_Job_Exception $e) { - $job->fail(); - $this->fail($handle, $name, $e); - } - - // Force the job's destructor to run - $job = null; - - return true; - } -} - diff --git a/maintenance/gearman/gearmanRefreshLinks.php b/maintenance/gearman/gearmanRefreshLinks.php deleted file mode 100644 index 730db96b..00000000 --- a/maintenance/gearman/gearmanRefreshLinks.php +++ /dev/null @@ -1,45 +0,0 @@ -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"; -} - diff --git a/maintenance/gearman/gearmanWorker.php b/maintenance/gearman/gearmanWorker.php deleted file mode 100644 index 3ea10081..00000000 --- a/maintenance/gearman/gearmanWorker.php +++ /dev/null @@ -1,43 +0,0 @@ - 1000 ) { - echo "Invalid number of processes, please specify a number between 1 and 1000\n"; - exit( 1 ); - } - $fc = new ForkController( $procs, ForkController::RESTART_ON_ERROR ); - if ( $fc->start() != 'child' ) { - exit( 0 ); - } -} - -if ( !$args ) { - $args = array( 'localhost' ); -} - -if ( isset( $options['fake-job'] ) ) { - $params = unserialize( $options['fake-job'] ); - MWGearmanJob::runNoSwitch( $params ); -} - -$worker = new NonScaryGearmanWorker( $args ); -$worker->addAbility( 'mw_job' ); -$worker->beginWork( 'wfGearmanMonitor' ); - -function wfGearmanMonitor( $idle, $lastJob ) { - static $lastSleep = 0; - $interval = 5; - $now = time(); - if ( $now - $lastSleep >= $interval ) { - wfWaitForSlaves(); - $lastSleep = $now; - } - return false; -} -- cgit v1.2.2