var $stubText = false; // include rev_text_id instead of text; for 2-pass dump
var $dumpUploads = false;
var $dumpUploadFileContents = false;
+ var $lastTime = 0;
+ var $pageCountLast = 0;
+ var $revCountLast = 0;
+ var $ID = 0;
function BackupDumper( $args ) {
$this->stderr = fopen( "php://stderr", "wt" );
$dbr = wfGetDB( DB_SLAVE );
$this->maxCount = $dbr->selectField( $table, "MAX($field)", '', __METHOD__ );
$this->startTime = wfTime();
+ $this->lastTime = $this->startTime;
+ $this->ID = getmypid();
}
/**
function showReport() {
if ( $this->reporting ) {
- $delta = wfTime() - $this->startTime;
$now = wfTimestamp( TS_DB );
- if ( $delta ) {
- $rate = $this->pageCount / $delta;
- $revrate = $this->revCount / $delta;
+ $nowts = wfTime();
+ $deltaAll = wfTime() - $this->startTime;
+ $deltaPart = wfTime() - $this->lastTime;
+ $this->pageCountPart = $this->pageCount - $this->pageCountLast;
+ $this->revCountPart = $this->revCount - $this->revCountLast;
+
+ if ( $deltaAll ) {
$portion = $this->revCount / $this->maxCount;
- $eta = $this->startTime + $delta / $portion;
+ $eta = $this->startTime + $deltaAll / $portion;
$etats = wfTimestamp( TS_DB, intval( $eta ) );
+ $pageRate = $this->pageCount / $deltaAll;
+ $revRate = $this->revCount / $deltaAll;
} else {
- $rate = '-';
- $revrate = '-';
+ $pageRate = '-';
+ $revRate = '-';
$etats = '-';
}
- $this->progress( sprintf( "%s: %s %d pages (%0.3f/sec), %d revs (%0.3f/sec), ETA %s [max %d]",
- $now, wfWikiID(), $this->pageCount, $rate, $this->revCount, $revrate, $etats, $this->maxCount ) );
+ if ( $deltaPart ) {
+ $pageRatePart = $this->pageCountPart / $deltaPart;
+ $revRatePart = $this->revCountPart / $deltaPart;
+ } else {
+ $pageRatePart = '-';
+ $revRatePart = '-';
+ }
+ $this->progress( sprintf( "%s: %s (ID %d) %d pages (%0.1f|%0.1f/sec all|curr), %d revs (%0.1f|%0.1f/sec all|curr), ETA %s [max %d]",
+ $now, wfWikiID(), $this->ID, $this->pageCount, $pageRate, $pageRatePart, $this->revCount, $revRate, $revRatePart, $etats, $this->maxCount ) );
+ $this->lastTime = $nowts;
+ $this->revCountLast = $this->revCount;
}
}
var $history = WikiExporter::FULL;
var $fetchCount = 0;
var $prefetchCount = 0;
- var $lastTime = 0;
- var $pageCountLast = 0;
- var $revCountLast = 0;
var $prefetchCountLast = 0;
var $fetchCountLast = 0;
var $spawnRead = false;
var $spawnErr = false;
- var $ID = 0;
-
var $xmlwriterobj = false;
# when we spend more than maxTimeAllowed seconds on this run, we continue
function initProgress( $history ) {
parent::initProgress();
- $this->ID = getmypid();
- $this->lastTime = $this->startTime;
$this->timeOfCheckpoint = $this->startTime;
}
}
function checkIfTimeExceeded() {
- $m1 = $this->maxTimeAllowed;
- $m2 = $this->lastTime;
- $m3 = $this->timeOfCheckpoint;
- $m4 = $this->lastTime - $this->timeOfCheckpoint;
if ( $this->maxTimeAllowed && ( $this->lastTime - $this->timeOfCheckpoint > $this->maxTimeAllowed ) ) {
return True;
}