private function _generatePrettyReport(TokenRange $currentRange, $now, $rangeStartTime, $rangeTotal, $rangeProcessed, $rangeErrors, $currentRate, $rangeSkipped, $totalSkipped, $totalDuration, $averageRate, $lastKey) { $t = new TextTable(new ReportTableDecorator()); $t->appendSubHeading('Current Range ' . Shell::colourText("(" . $currentRange->id() . ")", Shell::COLOUR_FOREGROUND_LIGHT_GREY)); $t->appendRows([['Start token', $currentRange->startToken], ['End token', $currentRange->endToken], ['First key', $currentRange->firstKey], ['Last key', $currentRange->lastKey]]); $t->appendSubHeading('Range statistics'); $t->appendRows([['Processing time', DateTimeHelper::secondsToTime($now - $rangeStartTime)], ['Total items', number_format($rangeTotal)], ['Processed items', number_format($rangeProcessed)], ['Skipped', number_format($rangeSkipped)], ['Errors', number_format($rangeErrors)], ['Processing rate', number_format($currentRate) . ' items/second']]); $t->appendSubHeading('Total'); $t->appendRows([['Processing time', DateTimeHelper::secondsToTime($totalDuration)], ['Total items', number_format($this->totalItems)], ['Processed items', number_format($this->processedItems)], ['Skipped', number_format($totalSkipped)], ['Errors', number_format($this->errors)], ['Processing rate', number_format($averageRate) . ' items/second']]); $t->appendSpacer(); $t->appendRow(['Last key seen', $lastKey]); ob_start(); echo $_REQUEST['__path__'] . "\n"; echo $t; EventManager::trigger(Events::DISPLAY_REPORT_END); return ob_get_clean(); }
/** * @param TokenRange[] $ranges */ private function _insertMultipleRanges($ranges) { $db = TokenRange::conn(); $tableName = (new TokenRange())->getTableName(); $query = ParseQuery::parse($db, 'INSERT INTO %T (startToken, endToken, randomKey, createdAt, updatedAt) VALUES ', $tableName); $data = []; foreach ($ranges as $range) { $nowStr = DateTimeHelper::formattedDateFromAnything(time()); $data[] = ParseQuery::parse($db, "(%s, %s, %d, %s, %s)", $range->startToken, $range->endToken, $range->randomKey, $nowStr, $nowStr); } $query .= implode(", ", $data); Log::debug($query); $db->query($query); }
private function _generatePrettyReport(BucketRange $currentRange, $now, $rangeStartTime, $rangeTotal, $rangeProcessed, $currentRate, $rangeSkipped, $totalSkipped, $totalDuration, $averageRate, $lastObject) { $t = new TextTable(new ReportTableDecorator()); $t->appendSubHeading('Current Range ' . Shell::colourText("(" . $currentRange->id() . ")", Shell::COLOUR_FOREGROUND_LIGHT_GREY)); $t->appendRow(['Prefix', $currentRange->prefix]); $t->appendSubHeading('Range statistics'); $t->appendRows([['Processing time', DateTimeHelper::secondsToTime($now - $rangeStartTime)], ['Total items', number_format($rangeTotal)], ['Processed items', number_format($rangeProcessed)], ['Skipped', number_format($rangeSkipped)], ['Processing rate', number_format($currentRate) . ' items/second']]); $t->appendSubHeading('Total'); $t->appendRows([['Processing time', DateTimeHelper::secondsToTime($totalDuration)], ['Total items', number_format($this->totalItems)], ['Processed items', number_format($this->processedItems)], ['Skipped', number_format($totalSkipped)], ['Processing rate', number_format($averageRate) . ' items/second']]); $t->appendSpacer(); $t->appendRow(['Last object seen', $lastObject]); ob_start(); EventManager::trigger(Events::DISPLAY_REPORT_START); echo $t; EventManager::trigger(Events::DISPLAY_REPORT_END); return ob_get_clean(); }
public function nextRun($time = null) { if (!$this->sendAt) { return null; } if (!CronParser::isValid($this->sendAt)) { return DateTimeHelper::dateTimeFromAnything($this->sendAt); } if (is_int($time)) { $time = (new \DateTime())->setTimestamp($time); } $nr = CronParser::nextRun($this->sendAt, $time, true); return $nr ?: null; }