diff --git a/app/Filament/AdminPanel/Widgets/DashboardSystemOverview.php b/app/Filament/AdminPanel/Widgets/DashboardSystemOverview.php index 49c40567..47c51240 100644 --- a/app/Filament/AdminPanel/Widgets/DashboardSystemOverview.php +++ b/app/Filament/AdminPanel/Widgets/DashboardSystemOverview.php @@ -7,7 +7,8 @@ use App\Enums\Filament\LucideIcon; use Filament\Widgets\StatsOverviewWidget; use Filament\Widgets\StatsOverviewWidget\Stat; -use Illuminate\Support\Facades\DB; +use Illuminate\Support\Facades\App; +use Illuminate\Support\Facades\Queue; class DashboardSystemOverview extends StatsOverviewWidget { @@ -20,16 +21,33 @@ public static function canView(): bool protected function getStats(): array { - $failedJobs = DB::table('failed_jobs')->count(); - $currentJobs = DB::table('jobs')->count(); + $currentDefaultJobs = Queue::size('default'); + $currentModerationJobs = Queue::size('moderation'); + $currentDiscordWebhooksJobs = Queue::size('discord-webhooks'); + + $failedJobs = App::make('queue.failer')->count(); + $currentTotalJobs = $currentDefaultJobs + $currentModerationJobs + $currentDiscordWebhooksJobs; return [ - Stat::make('Current Queue Jobs', number_format($currentJobs)) + Stat::make('Queue Jobs', number_format($currentTotalJobs)) + ->description('Current Jobs from all Queues') ->icon(LucideIcon::Server), Stat::make('Failed Queue Jobs', number_format($failedJobs)) ->icon($failedJobs > 0 ? LucideIcon::CircleX : LucideIcon::CircleCheck) ->color($failedJobs > 0 ? 'danger' : 'success'), + + Stat::make('Queue "default" Jobs', number_format($currentDefaultJobs)) + ->description('Current Jobs from default Queue') + ->icon(LucideIcon::Server), + + Stat::make('Queue "moderation" Jobs', number_format($currentModerationJobs)) + ->description('Current Jobs from moderation Queue') + ->icon(LucideIcon::Server), + + Stat::make('Queue "discord-webhooks" Jobs', number_format($currentDiscordWebhooksJobs)) + ->description('Current Jobs from discord-webhooks Queue') + ->icon(LucideIcon::Server), ]; } }