Skip to content

Commit e1e8efb

Browse files
Merge pull request #49 from punktDeForks/feature/log-errors
TASK: log errors on job failure
2 parents f78a130 + 221c7c5 commit e1e8efb

1 file changed

Lines changed: 19 additions & 0 deletions

File tree

Classes/Job/JobManager.php

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,13 @@
1515
use Neos\Cache\Frontend\VariableFrontend;
1616
use Neos\Flow\Annotations as Flow;
1717
use Neos\Flow\Core\Booting\Scripts;
18+
use Neos\Flow\Log\ThrowableStorageInterface;
19+
use Neos\Flow\Log\Utility\LogEnvironment;
1820
use Neos\Flow\Property\PropertyMapper;
1921
use Flowpack\JobQueue\Common\Exception as JobQueueException;
2022
use Flowpack\JobQueue\Common\Queue\Message;
2123
use Flowpack\JobQueue\Common\Queue\QueueManager;
24+
use Psr\Log\LoggerInterface;
2225

2326
/**
2427
* Job manager
@@ -62,6 +65,18 @@ class JobManager
6265
*/
6366
protected $flowSettings;
6467

68+
/**
69+
* @Flow\Inject
70+
* @var ThrowableStorageInterface
71+
*/
72+
protected $throwableStorage;
73+
74+
/**
75+
* @Flow\Inject
76+
* @var LoggerInterface
77+
*/
78+
protected $logger;
79+
6580
/**
6681
* Put a job in the queue
6782
*
@@ -120,10 +135,14 @@ public function waitAndExecute(string $queueName, $timeout = null): ?Message
120135
$releaseOptions = isset($queueSettings['releaseOptions']) ? $queueSettings['releaseOptions'] : [];
121136
$queue->release($message->getIdentifier(), $releaseOptions);
122137
$this->emitMessageReleased($queue, $message, $releaseOptions, $exception);
138+
$logMessage = $this->throwableStorage->logThrowable($exception);
139+
$this->logger->error($logMessage, LogEnvironment::fromMethodName(__METHOD__));
123140
throw new JobQueueException(sprintf('Job execution for job (message: "%s", queue: "%s") failed (%d/%d trials) - RELEASE', $message->getIdentifier(), $queue->getName(), $message->getNumberOfReleases() + 1, $maximumNumberOfReleases + 1), 1334056583, $exception);
124141
} else {
125142
$queue->abort($message->getIdentifier());
126143
$this->emitMessageFailed($queue, $message, $exception);
144+
$logMessage = $this->throwableStorage->logThrowable($exception);
145+
$this->logger->error($logMessage, LogEnvironment::fromMethodName(__METHOD__));
127146
throw new JobQueueException(sprintf('Job execution for job (message: "%s", queue: "%s") failed (%d/%d trials) - ABORTING', $message->getIdentifier(), $queue->getName(), $message->getNumberOfReleases() + 1, $maximumNumberOfReleases + 1), 1334056584, $exception);
128147
}
129148
} finally {

0 commit comments

Comments
 (0)