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

Reviewed-on: #14
Co-authored-by: Ron Rise <ron@siteworxpro.com>
Co-committed-by: Ron Rise <ron@siteworxpro.com>
This commit was merged in pull request #14.
This commit is contained in:
2025-11-12 12:00:31 +00:00
committed by Siteworx Pro Gitea
parent eeb46bc982
commit 2879cbe203
28 changed files with 1139 additions and 14 deletions

View File

@@ -0,0 +1,28 @@
<?php
declare(strict_types=1);
namespace Siteworxpro\App\Async\Queues;
use Siteworxpro\App\Async\Messages\Message;
use Siteworxpro\App\Services\Facades\Broker;
readonly abstract class Queue
{
abstract public function queueName(): string;
public function push(Message $message): void
{
Broker::publish($this, $message);
}
public function later(int $delay, Message $message): void
{
Broker::publish($this, $message, $delay);
}
public function pop(): Message | null
{
return Broker::consume($this);
}
}