or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

cli.mdflask-integration.mdindex.md
tile.json

tessl/pypi-rq-dashboard

A lightweight web interface to monitor RQ queues, jobs, and workers in realtime

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
pypipkg:pypi/rq-dashboard@0.8.x

To install, run

npx @tessl/cli install tessl/pypi-rq-dashboard@0.8.0

index.mddocs/

RQ Dashboard

A lightweight, general-purpose web interface to monitor Redis Queue (RQ) systems in realtime. RQ Dashboard provides comprehensive monitoring capabilities for RQ queues, jobs, and workers through an intuitive web interface that can be deployed as a standalone application or integrated into existing Flask applications.

Package Information

  • Package Name: rq-dashboard
  • Language: Python
  • Installation: pip install rq-dashboard
  • Dependencies: rq>=1.0, Flask, redis, arrow, redis-sentinel-url

Core Imports

import rq_dashboard

For standalone CLI usage:

from rq_dashboard.cli import main, make_flask_app

For Flask integration:

from rq_dashboard import blueprint, default_settings

Basic Usage

Standalone CLI Application

# Run as command-line application
from rq_dashboard.cli import main

if __name__ == "__main__":
    main()

Command line usage:

# Basic usage with default settings
rq-dashboard

# With custom configuration
rq-dashboard --bind 0.0.0.0 --port 9181 --redis-url redis://localhost:6379

# With authentication
rq-dashboard --username admin --password secret

# Multiple Redis instances
rq-dashboard --redis-url redis://localhost:6379 --redis-url redis://localhost:6380

Flask Application Integration

from flask import Flask
from rq_dashboard import blueprint, default_settings

# Create Flask app
app = Flask(__name__)

# Configure with default settings
app.config.from_object(default_settings)

# Set Redis connection
app.config['RQ_DASHBOARD_REDIS_URL'] = 'redis://localhost:6379'

# Register the blueprint
app.register_blueprint(blueprint, url_prefix='/rq')

if __name__ == '__main__':
    app.run()

Architecture

RQ Dashboard follows a modular architecture:

  • CLI Module: Standalone application with Click-based command-line interface
  • Web Module: Flask blueprint providing web interface and REST API endpoints
  • Configuration: Flexible configuration system supporting environment variables, config files, and programmatic setup
  • Multi-instance Support: Ability to monitor multiple Redis instances simultaneously
  • Authentication: Optional HTTP Basic Authentication for security

The dashboard provides both HTML views for human users and JSON API endpoints for programmatic access, making it suitable for both manual monitoring and integration with automated systems.

Capabilities

Command Line Interface

Complete standalone application with extensive configuration options for deployment flexibility. Supports authentication, multiple Redis instances, custom polling intervals, and various deployment scenarios including Docker and reverse proxy configurations.

def main():
    """Entry point for rq-dashboard console script."""

def run(bind, port, url_prefix, username, password, config, redis_url, poll_interval, debug, verbose, **kwargs):
    """
    Run the RQ Dashboard Flask server with configuration options.
    """

def make_flask_app(config, username, password, url_prefix, compatibility_mode=True):
    """
    Return Flask app with default configuration and registered blueprint.
    
    Args:
        config: Python module name for configuration
        username: HTTP Basic Auth username
        password: HTTP Basic Auth password
        url_prefix: URL prefix for blueprint registration
        compatibility_mode: Enable legacy configuration support
    
    Returns:
        Flask: Configured Flask application with RQ Dashboard
    """

Command Line Interface

Flask Integration

Flask blueprint for embedding RQ Dashboard into existing Flask applications. Provides complete web interface with HTML views and JSON API endpoints for monitoring queues, jobs, and workers.

blueprint: Blueprint
    """Main Flask blueprint for RQ Dashboard web interface."""

def setup_rq_connection(current_app):
    """
    Set up Redis connection for RQ operations.
    
    Args:
        current_app: Flask application instance
    """

class Config:
    """Configuration container for RQ Dashboard settings."""
    serializer: Any

Flask Integration

Configuration Options

Environment Variables

All CLI options can be configured via environment variables with RQ_DASHBOARD_ prefix:

  • RQ_DASHBOARD_REDIS_URL: Redis connection URL(s)
  • RQ_DASHBOARD_POLL_INTERVAL: Web interface refresh interval in milliseconds
  • RQ_DASHBOARD_DISABLE_DELETE: Disable job deletion capabilities
  • RQ_DASHBOARD_SETTINGS: Path to configuration file

Flask Configuration Keys

  • RQ_DASHBOARD_REDIS_URL: Redis URL (string or list for multiple instances)
  • RQ_DASHBOARD_POLL_INTERVAL: Polling interval in milliseconds (default: 2500)
  • RQ_DASHBOARD_DISABLE_DELETE: Disable delete operations (boolean)

Types

from typing import Optional, Union, List, Dict, Any
from flask import Blueprint, Flask
from redis import Redis

RedisUrl = Union[str, List[str]]
ConfigModule = Optional[str]
AuthCredentials = Optional[str]