Core/bin/queue-status

44 lines
No EOL
1.3 KiB
PHP
Executable file

#!/usr/bin/php
<?php
require_once(__DIR__ . "/find-autoloader.php");
use Benzine\App;
use Benzine\Services\QueueService;
use jc21\CliTable;
$timeAgo = new Westsworld\TimeAgo();
/** @var QueueService $queueService */
$queueService = App::DI(QueueService::class);
while(true) {
$data = [];
foreach($queueService->listLists() as $list){
$data[] = [
"name" => $list,
"length" => $queueService->getQueueLength($list),
"peak" => $queueService->getQueueLengthPeak($list),
"firstSeen" => $timeAgo->inWords($queueService->getQueueCreatedAgo($list)),
"lastSeen" => $timeAgo->inWords($queueService->getQueueUpdatedAgo($list)),
];
}
$rowsCount = count($data) + 4;
$table = new CliTable;
$table->setTableColor('blue');
$table->setHeaderColor('cyan');
$table->addField("Queue Name", "name", false, "white");
$table->addField("Length", "length", false, "blue");
$table->addField("Peak", "peak", false, "blue");
$table->addField("Queue Existed Since", "firstSeen", false, "red");
$table->addField("Queue Updated Last", "lastSeen", false, "green");
$table->injectData($data);
$table->display();
sleep(1);
for($i = 0; $i < $rowsCount; $i++){
echo "\033[2K";
echo "\033[1A";
}
}