
Security News
New CNA Scorecard Tool Ranks CVE Data Quality Across the Ecosystem
The CNA Scorecard ranks CVE issuers by data completeness, revealing major gaps in patch info and software identifiers across thousands of vulnerabilities.
sidekiq_queue_manager
Advanced tools
Complete Sidekiq management suite with tabbed interface for queues, scheduled jobs, retries, and dead jobs.
A modern, real-time web interface for comprehensive Sidekiq management with zero configuration required. Features match and extend the official Sidekiq Web UI with enhanced filtering, smart number formatting, and professional design. Perfect for production environments requiring full-featured job management capabilities.
Add to your Gemfile:
gem 'sidekiq_queue_manager'
bundle install
Mount the engine in your routes:
# config/routes.rb
Rails.application.routes.draw do
mount SidekiqQueueManager::Engine, at: '/admin/queues'
# or mount at root level
# mount SidekiqQueueManager::Engine, at: '/queues'
end
That's it! 🎉 Visit /admin/queues
to access your professional queue management interface.
# config/initializers/sidekiq_queue_manager.rb
SidekiqQueueManager.configure do |config|
# Protect critical queues from bulk operations (recommended)
config.critical_queues = ['mailer', 'billing', 'notifications']
# Add authentication (recommended for production)
config.authentication_method = :authenticate_admin!
# Customize refresh interval (milliseconds)
config.refresh_interval = 5000
# Set theme preference
config.theme = 'auto' # 'auto', 'dark', 'light'
end
SidekiqQueueManager.configure do |config|
# Security & Performance
config.enable_csp = true
config.enable_caching = true
config.cache_ttl = 300
# Logging
config.enable_logging = true
config.log_level = :info
# Redis Configuration
config.redis_timeout = 5
config.redis_key_prefix = 'sqm'
# Default Queue Priorities
config.default_queue_priorities = {
'critical' => 10,
'high' => 7,
'default' => 5,
'low' => 1
}
end
# config/initializers/sidekiq_queue_manager.rb
SidekiqQueueManager.configure do |config|
config.authentication_method = :authenticate_admin!
end
# In your ApplicationController
def authenticate_admin!
redirect_to login_path unless current_user&.admin?
end
The main dashboard provides:
# Set maximum jobs in queue
# Via UI: Queue Actions → Set Queue Limit
# Prevents queue from growing beyond specified size
# Set maximum Sidekiq processes working on queue
# Via UI: Queue Actions → Set Process Limit
# Controls parallel processing capacity
The gem provides a comprehensive REST API for programmatic access:
GET /metrics # Real-time queue statistics
GET /queues/summary # Queue summary statistics
POST /queues/pause_all # Pause all non-critical queues
POST /queues/resume_all # Resume all paused queues
GET /scheduled # List scheduled jobs (paginated, filterable)
DELETE /scheduled/:id # Delete specific scheduled job
POST /scheduled/:id/enqueue # Enqueue scheduled job immediately
POST /scheduled/clear # Clear all scheduled jobs (with optional filter)
GET /retries # List retry jobs (paginated, filterable)
POST /retries/:id/retry # Retry specific job immediately
DELETE /retries/:id # Delete specific retry job
POST /retries/:id/kill # Kill retry job (move to dead queue)
POST /retries/retry_all # Retry all jobs (with optional filter)
POST /retries/clear # Clear all retry jobs (with optional filter)
GET /dead # List dead jobs (paginated, filterable)
POST /dead/:id/resurrect # Resurrect dead job to retry queue
DELETE /dead/:id # Delete dead job permanently
POST /dead/resurrect_all # Resurrect all dead jobs (with optional filter)
POST /dead/clear # Clear all dead jobs (with optional filter)
GET /queues/:name/status # Get queue status
POST /queues/:name/pause # Pause specific queue
POST /queues/:name/resume # Resume specific queue
GET /queues/:name/jobs # List jobs (paginated)
DELETE /queues/:name/delete_job # Delete specific job
POST /queues/:name/clear # Clear all jobs in queue
# Advanced Operations
POST /queues/:name/set_limit # Set queue limit
DELETE /queues/:name/remove_limit # Remove queue limit
POST /queues/:name/set_process_limit # Set process limit
DELETE /queues/:name/remove_process_limit # Remove process limit
POST /queues/:name/block # Block queue
POST /queues/:name/unblock # Unblock queue
GET /live # Server-Sent Events stream for real-time updates
Enable Authentication (disabled by default for development)
# Enable basic auth
config.basic_auth_enabled = true
config.basic_auth_password = 'secure-password'
# OR use custom authentication
config.authentication_method = :authenticate_admin!
Network Security
# Mount behind authentication
authenticated :admin do
mount SidekiqQueueManager::Engine, at: '/admin/queues'
end
Critical Queue Protection
config.critical_queues = ['billing', 'payments', 'notifications']
After setting limits or process limits, restart your Sidekiq processes:
# Systemd
sudo systemctl restart sidekiq
# Docker
docker-compose restart sidekiq
# Manual
kill -USR1 $(pgrep -f sidekiq)
# Dockerfile
FROM ruby:3.1
# ... your existing setup
# The gem works seamlessly in containerized environments
RUN bundle install
The gem works out-of-the-box on Heroku with no additional configuration needed.
🎉 Major Feature Release - Complete Sidekiq Management Suite
New Features:
API Enhancements:
UI/UX Improvements:
Backward Compatibility:
We welcome contributions! Please see our Contributing Guidelines for details.
git clone https://github.com/jamalawd/sidekiq_queue_manager.git
cd sidekiq_queue_manager
bundle install
# Run tests
bundle exec rspec
# Start development server
cd spec/dummy
rails server
Please use our Issue Tracker to report bugs or request features.
This project is licensed under the MIT License - see the LICENSE file for details.
Created and maintained by Jamal Awad
Ruby enthusiast, tech lead, & architect passionate about open-source development
Transform your Sidekiq experience with comprehensive job management - queues, scheduled jobs, retries, and dead jobs in one professional interface.
FAQs
Unknown package
We found that sidekiq_queue_manager demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
The CNA Scorecard ranks CVE issuers by data completeness, revealing major gaps in patch info and software identifiers across thousands of vulnerabilities.
Research
/Security News
Two npm packages masquerading as WhatsApp developer libraries include a kill switch that deletes all files if the phone number isn’t whitelisted.
Research
/Security News
Socket uncovered 11 malicious Go packages using obfuscated loaders to fetch and execute second-stage payloads via C2 domains.