Pārlūkot izejas kodu

fix(log): Improve logging of background job details for better reproduction/debugging

Signed-off-by: Joas Schilling <coding@schilljs.com>
tags/v29.0.0beta1
Joas Schilling pirms 4 mēnešiem
vecāks
revīzija
b8c57efaad
Revīzijas autora e-pasta adrese nav piesaistīta nevienam kontam
2 mainītis faili ar 8 papildinājumiem un 6 dzēšanām
  1. 4
    3
      cron.php
  2. 4
    3
      lib/public/BackgroundJob/Job.php

+ 4
- 3
cron.php Parādīt failu

@@ -148,7 +148,8 @@ try {
break;
}

$logger->debug('CLI cron call has selected job with ID ' . strval($job->getId()), ['app' => 'cron']);
$jobDetails = get_class($this) . ' (id: ' . $this->getId() . ', arguments: ' . json_encode($this->getArgument()) . ')';
$logger->debug('CLI cron call has selected job ' . $jobDetails, ['app' => 'cron']);

$memoryBefore = memory_get_usage();
$memoryPeakBefore = memory_get_peak_usage();
@@ -159,10 +160,10 @@ try {
$memoryPeakAfter = memory_get_peak_usage();

if ($memoryAfter - $memoryBefore > 10_000_000) {
$logger->warning('Used memory grew by more than 10 MB when executing job ' . get_class($job) . ' : ' . \OCP\Util::humanFileSize($memoryAfter). ' (before: ' . \OCP\Util::humanFileSize($memoryBefore) . ')', ['app' => 'cron']);
$logger->warning('Used memory grew by more than 10 MB when executing job ' . $jobDetails . ': ' . \OCP\Util::humanFileSize($memoryAfter). ' (before: ' . \OCP\Util::humanFileSize($memoryBefore) . ')', ['app' => 'cron']);
}
if ($memoryPeakAfter > 300_000_000) {
$logger->warning('Cron job used more than 300 MB of ram after executing job ' . get_class($job) . ': ' . \OCP\Util::humanFileSize($memoryPeakAfter) . ' (before: ' . \OCP\Util::humanFileSize($memoryPeakBefore) . ')', ['app' => 'cron']);
$logger->warning('Cron job used more than 300 MB of ram after executing job ' . $jobDetails . ': ' . \OCP\Util::humanFileSize($memoryPeakAfter) . ' (before: ' . \OCP\Util::humanFileSize($memoryPeakBefore) . ')', ['app' => 'cron']);
}

// clean up after unclean jobs

+ 4
- 3
lib/public/BackgroundJob/Job.php Parādīt failu

@@ -76,16 +76,17 @@ abstract class Job implements IJob, IParallelAwareJob {
$logger = $this->logger ?? \OCP\Server::get(LoggerInterface::class);

try {
$jobDetails = get_class($this) . ' (id: ' . $this->getId() . ', arguments: ' . json_encode($this->getArgument()) . ')';
$jobStartTime = $this->time->getTime();
$logger->debug('Run ' . get_class($this) . ' job with ID ' . $this->getId(), ['app' => 'cron']);
$logger->debug('Starting job ' . $jobDetails, ['app' => 'cron']);
$this->run($this->argument);
$timeTaken = $this->time->getTime() - $jobStartTime;

$logger->debug('Finished ' . get_class($this) . ' job with ID ' . $this->getId() . ' in ' . $timeTaken . ' seconds', ['app' => 'cron']);
$logger->debug('Finished job ' . $jobDetails . ' in ' . $timeTaken . ' seconds', ['app' => 'cron']);
$jobList->setExecutionTime($this, $timeTaken);
} catch (\Throwable $e) {
if ($logger) {
$logger->error('Error while running background job (class: ' . get_class($this) . ', arguments: ' . print_r($this->argument, true) . ')', [
$logger->error('Error while running background job ' . $jobDetails, [
'app' => 'core',
'exception' => $e,
]);

Notiek ielāde…
Atcelt
Saglabāt