feat: implement queue system with consumer and message handling
All checks were successful
🧪✨ Tests Workflow / 🛡️ 🔒 Library Audit (push) Successful in 2m13s
🧪✨ Tests Workflow / 📝 ✨ Code Lint (push) Successful in 2m4s
🧪✨ Tests Workflow / 🛡️ 🔒 License Check (push) Successful in 2m16s
🧪✨ Tests Workflow / 🧪 ✨ Database Migrations (push) Successful in 2m47s
🧪✨ Tests Workflow / 🐙 🔍 Code Sniffer (push) Successful in 2m20s
🧪✨ Tests Workflow / 🧪 ✅ Unit Tests (push) Successful in 1m51s

This commit is contained in:
2025-11-12 00:31:06 -05:00
parent 6dd32884cf
commit c73234117b
7 changed files with 9 additions and 12 deletions

View File

@@ -16,7 +16,7 @@ class Kafka extends Broker
public function consume(Queue $queue): Message | null
{
// TODO: Implement consume() method.
return null;
}
public function acknowledge(Queue $queue, Message $message): void

View File

@@ -16,7 +16,7 @@ class RabbitMQ extends Broker
public function consume(Queue $queue): Message | null
{
// TODO: Implement consume() method.
return null;
}
public function acknowledge(Queue $queue, Message $message): void

View File

@@ -151,11 +151,14 @@ class Redis extends Broker
return null;
}
/** @var Message $value */
$value = unserialize($messageData, ['allowed_classes' => true]);
if (!$value instanceof Message) {
return null;
}
$value->setId($messageId);
return $value instanceof Message ? $value : null;
return $value;
}
public function acknowledge(Queue $queue, Message $message): void

View File

@@ -16,7 +16,7 @@ class Sqs extends Broker
public function consume(Queue $queue): Message | null
{
// TODO: Implement consume() method.
return null;
}
public function acknowledge(Queue $queue, Message $message): void

View File

@@ -24,7 +24,6 @@ class Consumer
public function __construct()
{
/** @var Queue $queueClass */
foreach (self::QUEUES as $queueClass) {
$this->queues[] = new $queueClass();
}

View File

@@ -13,7 +13,6 @@ use Spiral\Goridge\RPC\RPC;
class Logger implements LoggerInterface
{
private ?RRLogger $rpcLogger = null;
private \Monolog\Logger $monologLogger;

View File

@@ -19,11 +19,7 @@ class BrokerServiceProvider extends ServiceProvider
$brokerClass = Broker::BROKER_TYPES[$configName] ?? null;
if ($brokerClass && class_exists($brokerClass)) {
$class = new $brokerClass($brokerConfig);
if ($class instanceof Broker) {
return $class;
}
return new $brokerClass($brokerConfig);
}
throw new \RuntimeException("Broker class $brokerClass does not exist.");