Video Queue
Overview
The Video Queue Visualizer is an interactive queue management interface for the ComusThumbz video processing system. It provides a visual, column-based view of the processing queue organized by priority levels, allowing administrators to monitor job status, adjust priorities, and cancel jobs in real-time. The interface features drag-and-drop priority adjustment and auto-refreshes every 15 seconds.
Location: Navigate to this page via Admin Panel → Videos → Queue Visualizer or access directly via ct/admin/videoqueuevisualizer.php
[Screenshot: video-queue-visualizer-main]
Getting to This Page
- Navigate to Admin Panel → Videos
- Click Queue Visualizer link
- Alternatively, access from the Video Processing Dashboard via "Queue Visualizer" button
- Direct access via
ct/admin/videoqueuevisualizer.php
This visualizer provides a Kanban-style view of the video processing queue. Jobs are organized in columns by priority level, making it easy to see what's being processed and what's waiting.
System Requirements
This page requires the video processing system to be configured. It reads from and writes to the tblVideoProcessingJobs table and requires write permissions for priority updates.
PHP Requirements
Required PHP Extensions
Required PHP Functions
Folder Permissions
Network Requirements
Features & UI Elements
Page Header
[Screenshot: video-queue-visualizer-header]
Queue Statistics Bar
[Screenshot: video-queue-visualizer-stats]
Processor Settings Display
[Screenshot: video-queue-visualizer-settings]
Navigation Buttons
[Screenshot: video-queue-visualizer-navigation]
Auto-Refresh Indicator
[Screenshot: video-queue-visualizer-auto-refresh]
Queue Columns
[Screenshot: video-queue-visualizer-columns]
The queue is displayed in four columns:
Job Cards
[Screenshot: video-queue-visualizer-job-card]
Each job is displayed as a card with:
Job Type Colors:
Priority Modal
[Screenshot: video-queue-visualizer-priority-modal]
When clicking "Priority" button on a job card:
Bulk Actions
[Screenshot: video-queue-visualizer-bulk-actions]
Priority System
Priority Levels
Priority Impact
- Jobs with higher priority are picked up first by the processor
- Within same priority, older jobs are processed first (FIFO)
- Processing jobs are not affected by priority changes
- New videos get default priority from settings
Changing priority does not interrupt jobs already processing. Priority only affects which pending job is picked up next.
Step-by-Step Usage
Viewing Queue Status
- Navigate to Admin Panel → Videos → Queue Visualizer
- View four columns showing jobs by priority/status
- Check stats bar for overall queue health
- Review processor settings in sidebar
Changing Job Priority
- Find the job card in one of the columns
- Click Priority button (sliders icon)
- Priority modal opens
- Drag slider to desired priority (1-10)
- Click Save
- Job moves to appropriate column
Cancelling a Single Job
- Find the job card
- Click Cancel button (X icon)
- Confirm cancellation in dialog
- Job status changes to "cancelled"
- Job card disappears from queue
Bulk Cancelling Jobs
- Check "Select All" in column header OR
- Click individual job checkboxes
- Click "Cancel Selected" button
- Confirm bulk cancellation
- All selected jobs cancelled
Monitoring Processing
- Watch "Currently Processing" column
- Jobs show processing duration
- Completed jobs disappear automatically
- Failed jobs show error indicator
AJAX Actions
The visualizer uses POST requests with CSRF protection:
Cancel action uses videodashboardapi.php:
Job Status Flow
[pending] → [processing] → [completed]
↓ ↓
└→ [cancelled] [failed] → (retry) → [pending]
↓
(max attempts) → stays [failed]
Auto-Refresh Behavior
Troubleshooting
Common Issues
Jobs not appearing in queue
Cause: No pending jobs or filter mismatch
Solution:
- Check if jobs exist:
SELECT COUNT(*) FROM tblVideoProcessingJobs WHERE status = 'pending' - Verify database connection
- Refresh the page
Priority changes not saving
Cause: CSRF token expired or database error
Solution:
- Refresh page to get new CSRF token
- Check browser console for errors
- Verify database write permissions
Jobs stuck in "Currently Processing"
Cause: Processor crashed or job timed out
Solution:
- Check if videoprocessor.php is running
- Wait for timeout (per settings)
- Jobs will auto-reset or fail after timeout
- Manual reset:
UPDATE tblVideoProcessingJobs
SET status = 'pending', processingstartedat = NULL
WHERE status = 'processing'
AND processingstartedat < DATESUB(NOW(), INTERVAL 1 HOUR);
Processor disabled warning
Cause: processorenabled setting is false
Solution:
- Navigate to Settings
- Enable processor
- Or set via SQL:
UPDATE tblVideoSettings SET settingvalue = '1' WHERE settingkey = 'processorenabled';
Performance Tips
If the queue gets very large:
- Increase maxconcurrentjobs setting
- Run processor more frequently
- Archive old completed jobs
- Consider distributed processing (Phase 10)
Color Reference
Column Headers
Job Cards
Priority Badges
Translatable Strings
The following strings should be added to backendtranslations.md:
videoqueuevisualizertitle = "Video Processing Queue Visualizer"
videoqueuevisualizerbreadcrumb = "Queue Visualizer"
videoqueuevisualizersubtitle = "Visual queue management with priority columns"
videoqueuevisualizerbacktodashboard = "Back to Dashboard"
videoqueuevisualizersettings = "Settings"
videoqueuevisualizerrefresh = "Refresh"
videoqueuevisualizerautorefresh = "Auto-refresh"
videoqueuevisualizertotalpending = "Total Pending"
videoqueuevisualizerprocessing = "Processing"
videoqueuevisualizercompleted24h = "Completed (24h)"
videoqueuevisualizerfailed = "Failed"
videoqueuevisualizermaxconcurrent = "Max Concurrent"
videoqueuevisualizertimeout = "Timeout"
videoqueuevisualizerprocessorstatus = "Processor Status"
videoqueuevisualizerdefaultpriority = "Default Priority"
videoqueuevisualizerenabled = "Enabled"
videoqueuevisualizerdisabled = "Disabled"
videoqueuevisualizercurrentlyprocessing = "Currently Processing"
videoqueuevisualizerhighpriority = "High Priority"
videoqueuevisualizermediumpriority = "Medium Priority"
videoqueuevisualizerlowpriority = "Low Priority"
videoqueuevisualizerpriority = "Priority"
videoqueuevisualizercancel = "Cancel"
videoqueuevisualizerselectall = "Select All"
videoqueuevisualizercancelselected = "Cancel Selected"
videoqueuevisualizersetpriority = "Set Priority"
videoqueuevisualizercurrentpriority = "Current Priority"
videoqueuevisualizernewpriority = "New Priority"
videoqueuevisualizersave = "Save"
videoqueuevisualizercancelbtn = "Cancel"
videoqueuevisualizerlow = "Low"
videoqueuevisualizermedium = "Medium"
videoqueuevisualizerhigh = "High"
videoqueuevisualizerwaittime = "Wait"
videoqueuevisualizerattempts = "Attempts"
videoqueuevisualizernojobs = "No jobs in this column"
videoqueuevisualizerjobtypesextract = "Extract Metadata"
videoqueuevisualizerjobtypestranscode = "Transcode"
videoqueuevisualizerjobtypesthumbnails = "Thumbnails"
videoqueuevisualizerjobtypessprites = "Sprites"
videoqueuevisualizerjobtypespreview = "Preview"
videoqueuevisualizerjobtypesgif = "GIF"
videoqueuevisualizerjobtypescontact = "Contact Sheet"
videoqueuevisualizerjobtypescdn = "CDN Upload"
videoqueuevisualizerjobtypescleanup = "Cleanup"
videoqueuevisualizerconfirmcancel = "Are you sure you want to cancel this job?"
videoqueuevisualizerconfirmbulkcancel = "Cancel {count} selected jobs?"
videoqueuevisualizerpriorityupdated = "Priority updated successfully"
videoqueuevisualizerjobcancelled = "Job cancelled"
videoqueuevisualizererrorupdate = "Error updating priority"
videoqueuevisualizererrorcancel = "Error cancelling job"
Version History
Related Documentation
- Video Processor Dashboard - Dashboard overview
- Video Processor Settings - Processor configuration
- Video Upload System - Upload workflow
- Storage Server System - CDN and storage