Skip to content

Commit

Permalink
Wrap Throwables in RuntimeExceptions in Signals
Browse files Browse the repository at this point in the history
in order to keep B/C
  • Loading branch information
bwaidelich committed Jul 28, 2022
1 parent 5c0b290 commit 439dd58
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 7 deletions.
12 changes: 6 additions & 6 deletions Classes/Job/JobManager.php
Original file line number Diff line number Diff line change
Expand Up @@ -134,13 +134,13 @@ public function waitAndExecute(string $queueName, $timeout = null): ?Message
if ($message->getNumberOfReleases() < $maximumNumberOfReleases) {
$releaseOptions = isset($queueSettings['releaseOptions']) ? $queueSettings['releaseOptions'] : [];
$queue->release($message->getIdentifier(), $releaseOptions);
$this->emitMessageReleased($queue, $message, $releaseOptions, $throwable);
$this->emitMessageReleased($queue, $message, $releaseOptions, new \RuntimeException($throwable->getMessage(), 1659019014, $throwable));
$logMessage = $this->throwableStorage->logThrowable($throwable);
$this->logger->error($logMessage, LogEnvironment::fromMethodName(__METHOD__));
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, $throwable);
} else {
$queue->abort($message->getIdentifier());
$this->emitMessageFailed($queue, $message, $throwable);
$this->emitMessageFailed($queue, $message, new \RuntimeException($throwable->getMessage(), 1659019015, $throwable));
$logMessage = $this->throwableStorage->logThrowable($throwable);
$this->logger->error($logMessage, LogEnvironment::fromMethodName(__METHOD__));
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, $throwable);
Expand Down Expand Up @@ -253,12 +253,12 @@ protected function emitMessageFinished(QueueInterface $queue, Message $message):
* @param QueueInterface $queue The queue the released message belongs to
* @param Message $message The message that was released to the queue again
* @param array $releaseOptions The options that were passed to the release call
* @param \Throwable|null $jobExecutionThrowable The exception or error (if any) thrown by the job execution
* @param \Exception|null $jobExecutionException The exception (if any) thrown by the job execution
* @return void
* @Flow\Signal
* @api
*/
protected function emitMessageReleased(QueueInterface $queue, Message $message, array $releaseOptions, \Throwable $jobExecutionThrowable = null): void
protected function emitMessageReleased(QueueInterface $queue, Message $message, array $releaseOptions, \Exception $jobExecutionException = null): void
{
}

Expand All @@ -267,12 +267,12 @@ protected function emitMessageReleased(QueueInterface $queue, Message $message,
*
* @param QueueInterface $queue The queue the failed message belongs to
* @param Message $message The message that could not be executed successfully
* @param \Throwable|null $jobExecutionThrowable The exception or error (if any) thrown by the job execution
* @param \Exception|null $jobExecutionException The exception (if any) thrown by the job execution
* @return void
* @Flow\Signal
* @api
*/
protected function emitMessageFailed(QueueInterface $queue, Message $message, \Throwable $jobExecutionThrowable = null): void
protected function emitMessageFailed(QueueInterface $queue, Message $message, \Exception $jobExecutionException = null): void
{
}

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -371,7 +371,7 @@ class Package extends BasePackage
$dispatcher->connect(
JobManager::class, 'messageFailed',
function(QueueInterface $queue, Message $message, \Throwable $jobExecutionException = null) use ($bootstrap) {
function(QueueInterface $queue, Message $message, \Exception $jobExecutionException = null) use ($bootstrap) {
$additionalData = [
'queue' => $queue->getName(),
'message' => $message->getIdentifier()
Expand Down

0 comments on commit 439dd58

Please sign in to comment.