diff --git a/src/Core/Queue/Message.php b/src/Core/Queue/Message.php index 3ddcc875c3..43588c00c4 100644 --- a/src/Core/Queue/Message.php +++ b/src/Core/Queue/Message.php @@ -27,15 +27,10 @@ namespace App\Core\Queue; class Message { - public $content; - public string $queue; - /** * @codeCoverageIgnore */ - public function __construct($content, string $queue) + public function __construct(public mixed $payload, public string $queue) { - $this->queue = $queue; - $this->content = $content; } } diff --git a/src/Core/Queue/MessageHandler.php b/src/Core/Queue/MessageHandler.php index 3a61744bf3..09c6861d6f 100644 --- a/src/Core/Queue/MessageHandler.php +++ b/src/Core/Queue/MessageHandler.php @@ -26,6 +26,7 @@ declare(strict_types = 1); namespace App\Core\Queue; use App\Core\Event; +use App\Util\Formatting; use Symfony\Component\Messenger\Handler\MessageHandlerInterface; class MessageHandler implements MessageHandlerInterface @@ -35,6 +36,11 @@ class MessageHandler implements MessageHandlerInterface */ public function __invoke(Message $message) { - Event::handle($message->queue, [$message->content]); + $retry_args = []; + $args = \is_array($message->payload) ? $message->payload : [$message->payload]; + Event::handle( + name: 'Queue' . Formatting::snakeCaseToCamelCase($message->queue), + args: [...$args, &$retry_args], + ); } } diff --git a/src/Core/Queue/Queue.php b/src/Core/Queue/Queue.php index 961724e42d..63f6919624 100644 --- a/src/Core/Queue/Queue.php +++ b/src/Core/Queue/Queue.php @@ -48,12 +48,12 @@ abstract class Queue * * @codeCoverageIgnore */ - public static function enqueue($message, string $queue, bool $high = false, array $stamps = []) + public static function enqueue($payload, string $queue, bool $priority = false, array $stamps = []) { - if ($high) { - self::$message_bus->dispatch(new MessageHigh($message, $queue), $stamps); + if ($priority) { + self::$message_bus->dispatch(new MessageHigh($payload, $queue), $stamps); } else { - self::$message_bus->dispatch(new MessageLow($message, $queue), $stamps); + self::$message_bus->dispatch(new MessageLow($payload, $queue), $stamps); } } }