'admin@easystream.com', 'subject' => 'Test Job from Queue Management', 'message' => 'This is a test email sent from the queue management interface at ' . date('Y-m-d H:i:s') ], 'email'); if ($jobId) { $success_message = "Test job enqueued successfully. Job ID: {$jobId}"; } else { $error_message = "Failed to enqueue test job."; } break; } } // Get queue statistics $queues = ['default', 'email', 'video', 'notifications']; $queueStats = []; foreach ($queues as $queueName) { $queueStats[$queueName] = get_queue_stats($queueName); } $globalStats = get_queue_stats(); // Get Redis info $redis = VRedis::getInstance(); $redisInfo = $redis->isConnected() ? $redis->info() : []; $redisConnected = $redis->isConnected(); // Get recent jobs (if Redis is connected) $recentJobs = []; if ($redisConnected) { try { $redisInstance = $redis->getRedis(); $jobKeys = $redisInstance->keys('job:*'); // Get last 20 jobs $jobKeys = array_slice($jobKeys, -20); foreach ($jobKeys as $jobKey) { $jobData = $redis->get(str_replace('easystream:', '', $jobKey)); if ($jobData) { $recentJobs[] = $jobData; } } // Sort by created_at descending usort($recentJobs, function($a, $b) { return ($b['created_at'] ?? 0) - ($a['created_at'] ?? 0); }); } catch (Exception $e) { // Handle error silently } } ?>
| Job ID | Class | Queue | Status | Attempts | Created | Started | Completed |
|---|---|---|---|---|---|---|---|
| = substr($job['id'], 0, 20) ?>... | = secure_output($job['class']) ?> | = secure_output($job['queue']) ?> | = ucfirst($job['status']) ?> | = $job['attempts'] ?>/= $job['max_attempts'] ?> | = date('Y-m-d H:i:s', $job['created_at']) ?> | = isset($job['started_at']) ? date('Y-m-d H:i:s', $job['started_at']) : '-' ?> | = isset($job['completed_at']) ? date('Y-m-d H:i:s', $job['completed_at']) : '-' ?> |
docker logs vs-queue-workerdocker restart vs-queue-worker