2020-09-21 16:06:24 +02:00
|
|
|
<?php
|
2020-10-15 00:19:31 +02:00
|
|
|
|
2021-07-19 07:53:45 +02:00
|
|
|
declare(strict_types=1);
|
|
|
|
|
2020-09-21 16:06:24 +02:00
|
|
|
namespace App\Console\Command\MessageQueue;
|
|
|
|
|
|
|
|
use App\Console\Command\CommandAbstract;
|
2021-07-21 23:45:22 +02:00
|
|
|
use App\MessageQueue\AbstractQueueManager;
|
|
|
|
use App\MessageQueue\QueueManagerInterface;
|
2020-09-21 16:06:24 +02:00
|
|
|
use Symfony\Component\Console\Style\SymfonyStyle;
|
|
|
|
|
|
|
|
class ClearCommand extends CommandAbstract
|
|
|
|
{
|
|
|
|
public function __invoke(
|
|
|
|
SymfonyStyle $io,
|
2021-07-21 23:45:22 +02:00
|
|
|
QueueManagerInterface $queueManager,
|
2020-12-06 18:23:40 +01:00
|
|
|
?string $queue = null
|
2020-10-15 00:19:31 +02:00
|
|
|
): int {
|
2021-07-21 23:45:22 +02:00
|
|
|
$allQueues = AbstractQueueManager::getAllQueues();
|
2020-12-06 18:23:40 +01:00
|
|
|
|
|
|
|
if (!empty($queue)) {
|
|
|
|
if (in_array($queue, $allQueues, true)) {
|
2021-07-21 23:45:22 +02:00
|
|
|
$queueManager->clearQueue($queue);
|
2020-12-10 03:14:38 +01:00
|
|
|
|
2020-12-06 18:23:40 +01:00
|
|
|
$io->success(sprintf('Message queue "%s" cleared.', $queue));
|
|
|
|
} else {
|
|
|
|
$io->error(sprintf('Message queue "%s" does not exist.', $queue));
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
} else {
|
2021-07-21 23:45:22 +02:00
|
|
|
foreach ($allQueues as $queueName) {
|
|
|
|
$queueManager->clearQueue($queueName);
|
|
|
|
}
|
|
|
|
|
2020-12-06 18:23:40 +01:00
|
|
|
$io->success('All message queues cleared.');
|
2020-09-21 16:06:24 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
}
|