. // }}} /** * Queue wrapper * * @package GNUsocial * @category Wrapper * * @author Hugo Sales * @copyright 2020-2022 Free Software Foundation, Inc http://www.fsf.org * @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later */ namespace App\Core; use App\Core\Queue\MessageHigh; use App\Core\Queue\MessageLow; use Symfony\Component\Messenger\MessageBusInterface; abstract class Queue { private static ?MessageBusInterface $message_bus; public static function setMessageBus(MessageBusInterface $mb): void { self::$message_bus = $mb; } /** * Enqueue a $message in a configured transport, to be handled by the $queue handler * * @codeCoverageIgnore */ public static function enqueue(mixed $payload, string $queue, bool $priority = false, array $stamps = []): void { if ($priority) { self::$message_bus->dispatch(new MessageHigh($payload, $queue), $stamps); } else { self::$message_bus->dispatch(new MessageLow($payload, $queue), $stamps); } } }