feat: enhance consumer initialization to support custom queue names

This commit is contained in:
2025-11-12 11:30:32 -05:00
parent 2879cbe203
commit f8b988ca0d
2 changed files with 25 additions and 7 deletions

View File

@@ -13,7 +13,7 @@ class Consumer
private static bool $shutDown = false;
private const array QUEUES = [
Queues\DefaultQueue::class,
'default' => Queues\DefaultQueue::class,
];
private array $queues = [];
@@ -22,9 +22,24 @@ class Consumer
private const string HANDLER_NAMESPACE = 'Siteworxpro\\App\\Async\\Handlers\\';
public function __construct()
public function __construct(array $queues = [])
{
foreach (self::QUEUES as $queueClass) {
if ($queues === []) {
$queues = self::QUEUES;
} else {
$mappedQueues = [];
foreach ($queues as $queueName) {
if (isset(self::QUEUES[$queueName])) {
$mappedQueues[] = self::QUEUES[$queueName];
} else {
throw new \InvalidArgumentException("Queue '$queueName' is not defined.");
}
}
$queues = $mappedQueues;
}
foreach ($queues as $queueClass) {
$this->queues[] = new $queueClass();
}