Compare commits
2 Commits
13b246b998
...
d10ee33215
Author | SHA1 | Date | |
---|---|---|---|
d10ee33215 | |||
5134630525 |
@ -1,6 +1,7 @@
|
||||
<?php
|
||||
namespace Incoviba\Common\Implement\Log\Formatter;
|
||||
|
||||
use Throwable;
|
||||
use Monolog\Formatter\JsonFormatter;
|
||||
use Monolog\LogRecord;
|
||||
|
||||
@ -13,7 +14,35 @@ class PDO extends JsonFormatter
|
||||
|
||||
public function format(LogRecord $record): string
|
||||
{
|
||||
if (is_a($record->message, Throwable::class)) {
|
||||
$exception = $record->message;
|
||||
$message = $this->normalizeException($exception);
|
||||
$context = $record->context;
|
||||
$context['exception'] = $exception;
|
||||
if ($exception->getPrevious()) {
|
||||
$context['previous'] = $this->walkException($exception);
|
||||
}
|
||||
$new_record = new LogRecord(
|
||||
$record->datetime,
|
||||
$record->channel,
|
||||
$record->level,
|
||||
json_encode($message),
|
||||
$context,
|
||||
$record->extra
|
||||
);
|
||||
$record = $new_record;
|
||||
}
|
||||
$normalized = $this->normalize($record, $this->maxNormalizeDepth);
|
||||
return $normalized['message'];
|
||||
}
|
||||
|
||||
protected function walkException(Throwable $exception, int $depth = 0): array
|
||||
{
|
||||
$output = [];
|
||||
$currentDepth = $depth;
|
||||
while ($previous = $exception->getPrevious() and $currentDepth < $this->maxNormalizeDepth) {
|
||||
$output []= $this->normalizeException($previous);
|
||||
}
|
||||
return $output;
|
||||
}
|
||||
}
|
||||
|
@ -6,6 +6,7 @@ use DateTimeZone;
|
||||
use InvalidArgumentException;
|
||||
use OutOfRangeException;
|
||||
use Psr\Log\LoggerInterface;
|
||||
use Predis\Connection\ConnectionException;
|
||||
use Incoviba\Common\Ideal;
|
||||
use Incoviba\Common\Implement\Exception\EmptyRedis;
|
||||
use Incoviba\Common\Implement\Exception\EmptyResult;
|
||||
@ -36,7 +37,7 @@ class Job extends Ideal\Service
|
||||
});
|
||||
}
|
||||
return array_map([$this, 'load'], $jobs);
|
||||
} catch (EmptyRedis) {
|
||||
} catch (ConnectionException | EmptyRedis) {
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
@ -28,7 +28,7 @@ class Queue extends Ideal\Service
|
||||
try {
|
||||
$this->jobService->add($configuration);
|
||||
return true;
|
||||
} catch (Create $exception) {
|
||||
} catch (Read $exception) {
|
||||
$final = new Exception("Could not enqueue job", 0, $exception);
|
||||
$this->logger->warning($final);
|
||||
return false;
|
||||
@ -82,12 +82,10 @@ class Queue extends Ideal\Service
|
||||
}
|
||||
public function run(?RequestInterface $request = null): bool
|
||||
{
|
||||
try {
|
||||
$jobs = $this->jobService->getPending();
|
||||
} catch (Read $exception) {
|
||||
$final = new Exception("Could not get pending jobs", 0, $exception);
|
||||
$this->logger->warning($final);
|
||||
return false;
|
||||
$jobs = $this->jobService->getPending();
|
||||
if (count($jobs) === 0) {
|
||||
$this->logger->debug("No pending jobs");
|
||||
return true;
|
||||
}
|
||||
|
||||
$errors = [];
|
||||
|
@ -2,8 +2,8 @@
|
||||
namespace Incoviba\Service;
|
||||
|
||||
use Exception;
|
||||
use Predis\Connection\ConnectionException;
|
||||
use Psr\Log\LoggerInterface;
|
||||
use Predis\Connection\ConnectionException;
|
||||
|
||||
class Job
|
||||
{
|
||||
|
Reference in New Issue
Block a user