| Crates.io | celers-cli |
| lib.rs | celers-cli |
| version | 0.1.0 |
| created_at | 2026-01-18 18:33:59.18117+00 |
| updated_at | 2026-01-18 18:33:59.18117+00 |
| description | Command-line interface for CeleRS worker and queue management |
| homepage | |
| repository | https://github.com/cool-japan/celers |
| max_upload_size | |
| id | 2052818 |
| size | 490,799 |
Command-line interface for managing CeleRS workers, queues, and task execution.
Status: ✅ FEATURE COMPLETE
A comprehensive CLI tool providing full-featured management for CeleRS distributed task queues. Supports multiple brokers (Redis, PostgreSQL), advanced worker management, monitoring, debugging, and operational workflows.
# Install from source
cargo install --path crates/celers-cli
# The binary is named 'celers'
celers --help
# Initialize configuration
celers init
# Start a worker
celers worker --broker redis://localhost:6379 --queue my_queue --concurrency 4
# Check queue status
celers status --broker redis://localhost:6379 --queue my_queue
# Run health diagnostics
celers health --broker redis://localhost:6379
# Launch interactive dashboard
celers dashboard --broker redis://localhost:6379 --queue my_queue
# Start worker with configuration
celers worker --broker redis://localhost:6379 --queue my_queue --concurrency 8
# List all running workers
celers worker-mgmt list --broker redis://localhost:6379
# Show worker statistics
celers worker-mgmt stats <worker-id> --broker redis://localhost:6379
# Stop a worker (graceful)
celers worker-mgmt stop <worker-id> --graceful --broker redis://localhost:6379
# Pause/resume worker
celers worker-mgmt pause <worker-id> --broker redis://localhost:6379
celers worker-mgmt resume <worker-id> --broker redis://localhost:6379
# Drain worker (finish current tasks, accept no new ones)
celers worker-mgmt drain <worker-id> --broker redis://localhost:6379
# Stream worker logs
celers worker-mgmt logs <worker-id> --follow --level info --broker redis://localhost:6379
# Scale workers
celers worker-mgmt scale 5 --broker redis://localhost:6379
# List all queues (Redis)
celers queue list --broker redis://localhost:6379
# Show detailed queue statistics
celers queue stats --queue my_queue --broker redis://localhost:6379
# Pause/resume queue processing
celers queue pause --queue my_queue --broker redis://localhost:6379
celers queue resume --queue my_queue --broker redis://localhost:6379
# Purge all tasks from queue
celers queue purge --queue my_queue --confirm --broker redis://localhost:6379
# Move tasks between queues
celers queue move --from old_queue --to new_queue --confirm --broker redis://localhost:6379
# Export/import queues
celers queue export --queue my_queue --output backup.json --broker redis://localhost:6379
celers queue import --queue my_queue --input backup.json --confirm --broker redis://localhost:6379
# Inspect task details
celers task inspect <task-id> --broker redis://localhost:6379 --queue my_queue
# Cancel a running task
celers task cancel <task-id> --broker redis://localhost:6379 --queue my_queue
# Retry a failed task
celers task retry <task-id> --broker redis://localhost:6379 --queue my_queue
# Show task result
celers task result <task-id> --backend redis://localhost:6379
# Show task execution logs
celers task logs <task-id> --broker redis://localhost:6379 --limit 100
# Move task to different queue
celers task requeue <task-id> --from queue1 --to queue2 --broker redis://localhost:6379
# Inspect failed tasks
celers dlq inspect --broker redis://localhost:6379 --queue my_queue --limit 20
# Clear all DLQ tasks
celers dlq clear --confirm --broker redis://localhost:6379 --queue my_queue
# Replay specific task from DLQ
celers dlq replay <task-id> --broker redis://localhost:6379 --queue my_queue
# List scheduled tasks
celers schedule list --broker redis://localhost:6379
# Add new scheduled task
celers schedule add my_daily_task \
--task process_data \
--cron "0 0 * * *" \
--queue my_queue \
--args '{"param": "value"}' \
--broker redis://localhost:6379
# Pause/resume schedule
celers schedule pause my_daily_task --broker redis://localhost:6379
celers schedule resume my_daily_task --broker redis://localhost:6379
# Manually trigger scheduled task
celers schedule trigger my_daily_task --broker redis://localhost:6379
# Show execution history
celers schedule history my_daily_task --limit 50 --broker redis://localhost:6379
# Remove schedule
celers schedule remove my_daily_task --confirm --broker redis://localhost:6379
# Display live metrics
celers metrics --format text
# Export metrics to file
celers metrics --format json --output metrics.json
celers metrics --format prometheus --output metrics.prom
# Filter metrics by pattern
celers metrics --pattern "task_*" --format text
# Watch mode (auto-refresh)
celers metrics --watch 5 # Refresh every 5 seconds
# Interactive dashboard (TUI)
celers dashboard --broker redis://localhost:6379 --queue my_queue --refresh 1
# Start auto-scaling service
celers autoscale start --broker redis://localhost:6379 --queue my_queue
# Check auto-scaling status
celers autoscale status --broker redis://localhost:6379
# Start alert monitoring
celers alert start --broker redis://localhost:6379 --queue my_queue
# Test webhook notification
celers alert test --webhook-url https://hooks.example.com/alerts --message "Test alert"
# Debug task execution
celers debug task <task-id> --broker redis://localhost:6379 --queue my_queue
# Debug worker issues
celers debug worker <worker-id> --broker redis://localhost:6379
# System health check
celers health --broker redis://localhost:6379 --queue my_queue
# Automatic problem detection
celers doctor --broker redis://localhost:6379 --queue my_queue
# Daily execution report
celers report daily --broker redis://localhost:6379 --queue my_queue
# Weekly statistics
celers report weekly --broker redis://localhost:6379 --queue my_queue
# Analyze performance bottlenecks
celers analyze bottlenecks --broker redis://localhost:6379 --queue my_queue
# Analyze failure patterns
celers analyze failures --broker redis://localhost:6379 --queue my_queue
# Test database connection
celers db test-connection --url postgresql://user:pass@localhost/celers
# Run latency benchmark
celers db test-connection --url postgresql://user:pass@localhost/celers --benchmark
# Check database health
celers db health --url postgresql://user:pass@localhost/celers
# Show connection pool statistics
celers db pool-stats --url postgresql://user:pass@localhost/celers
# Apply migrations
celers db migrate --url postgresql://user:pass@localhost/celers --action apply
# Check migration status
celers db migrate --url postgresql://user:pass@localhost/celers --action status
celers init --output celers.toml
# celers.toml
[broker]
type = "redis" # or "postgres"
url = "redis://localhost:6379"
queue = "celers"
mode = "fifo" # or "priority"
# Broker failover (optional)
failover_urls = [
"redis://backup1:6379",
"redis://backup2:6379"
]
failover_retry_attempts = 3
failover_timeout_secs = 5
[worker]
concurrency = 4
poll_interval_ms = 1000
max_retries = 3
default_timeout_secs = 300
# Multiple queues
queues = ["celers", "high_priority", "low_priority"]
[autoscale]
enabled = false
min_workers = 1
max_workers = 10
scale_up_threshold = 80
scale_down_threshold = 20
check_interval_secs = 60
[alerts]
enabled = false
webhook_url = "https://hooks.example.com/alerts"
check_interval_secs = 60
dlq_threshold = 100
failed_tasks_threshold = 50
Configuration supports environment variable expansion:
[broker]
url = "${REDIS_URL:redis://localhost:6379}" # Uses $REDIS_URL or default
queue = "${QUEUE_NAME}" # Uses $QUEUE_NAME
Use different configurations for different environments:
# Create profile-specific configs
celers init --output celers-dev.toml
celers init --output celers-prod.toml
# Use specific profile
celers worker --config celers-prod.toml
# Validate configuration file
celers validate --config celers.toml
# Validate and test broker connection
celers validate --config celers.toml --test-connection
Generate completion scripts for your shell:
# Bash
celers completions bash > /etc/bash_completion.d/celers
# Zsh
celers completions zsh > /usr/share/zsh/site-functions/_celers
# Fish
celers completions fish > ~/.config/fish/completions/celers.fish
# PowerShell
celers completions powershell > celers.ps1
# Elvish
celers completions elvish > celers.elv
Generate and install man pages:
# Generate man pages
celers manpages --output ./man
# Install system-wide
sudo cp ./man/celers.1 /usr/share/man/man1/
sudo mandb
# View man page
man celers
Full support for all features:
celers worker --broker redis://localhost:6379 --queue my_queue
Full support for all features:
celers worker --broker postgresql://user:pass@localhost/celers --queue my_queue
# Configure multiple queues in config file
[worker]
queues = ["high", "medium", "low"]
# Start worker processing all queues
celers worker --config celers.toml
# 1. Health check before deployment
celers doctor --broker redis://prod:6379 --queue production
# 2. Drain workers for maintenance
celers worker-mgmt drain <worker-id> --broker redis://prod:6379
# 3. Export queue for backup
celers queue export --queue production --output backup-$(date +%Y%m%d).json
# 4. Monitor with auto-refresh
celers metrics --watch 10 --format text
# 5. Set up alerting
celers alert start --broker redis://prod:6379 --queue production
The CLI returns appropriate exit codes for scripting:
#!/bin/bash
# Check if queue is healthy
if celers health --broker redis://localhost:6379 --queue my_queue; then
echo "Queue is healthy"
else
echo "Queue has issues"
celers doctor --broker redis://localhost:6379 --queue my_queue
fi
| Category | Command | Description |
|---|---|---|
| Worker | worker |
Start worker process |
worker-mgmt list |
List all workers | |
worker-mgmt stats |
Worker statistics | |
worker-mgmt stop |
Stop worker | |
worker-mgmt pause/resume |
Pause/resume worker | |
worker-mgmt drain |
Drain worker | |
worker-mgmt scale |
Scale workers | |
worker-mgmt logs |
Stream worker logs | |
| Queue | queue list |
List queues |
queue stats |
Queue statistics | |
queue purge |
Clear queue | |
queue move |
Move tasks | |
queue export/import |
Backup/restore | |
queue pause/resume |
Pause/resume queue | |
| Task | task inspect |
Task details |
task cancel |
Cancel task | |
task retry |
Retry task | |
task result |
Show result | |
task logs |
Task logs | |
task requeue |
Move task | |
| DLQ | dlq inspect |
View failed tasks |
dlq clear |
Clear DLQ | |
dlq replay |
Retry task | |
| Schedule | schedule list |
List schedules |
schedule add |
Add schedule | |
schedule remove |
Remove schedule | |
schedule pause/resume |
Pause/resume | |
schedule trigger |
Manual trigger | |
schedule history |
Execution history | |
| Monitoring | metrics |
Show metrics |
dashboard |
Interactive TUI | |
autoscale start/status |
Auto-scaling | |
alert start/test |
Alerting | |
| Diagnostics | health |
Health check |
doctor |
Problem detection | |
debug task/worker |
Debug tools | |
| Reporting | report daily/weekly |
Reports |
analyze bottlenecks |
Performance | |
analyze failures |
Failure patterns | |
| Database | db test-connection |
Test connection |
db health |
Database health | |
db pool-stats |
Pool statistics | |
db migrate |
Run migrations | |
| Config | init |
Generate config |
validate |
Validate config | |
completions |
Shell completion | |
manpages |
Generate man pages | |
| Other | status |
Queue status |
The CLI uses colored output for better readability:
Colors are automatically disabled when output is piped or in CI environments.
0: Success1: General error2: Configuration error3: Connection errorSee the main CeleRS repository for contribution guidelines.
celers-core: Core types and traitscelers-worker: Worker runtimecelers-broker-redis: Redis broker implementationcelers-broker-postgres: PostgreSQL broker implementationcelers-metrics: Metrics collection and exportSee LICENSE file in the repository root.