Files
Code_of_Conquest/api/config/rq_config.py
2025-11-24 23:10:55 -06:00

78 lines
1.9 KiB
Python

"""
RQ Worker Configuration
This module provides configuration settings for RQ workers.
Workers can be started with these settings using the start_workers.sh script.
Usage:
# In worker startup
from config.rq_config import WORKER_CONFIG
worker = Worker(
queues=WORKER_CONFIG['queues'],
connection=redis_conn,
**WORKER_CONFIG['worker_kwargs']
)
"""
import os
from app.tasks import ALL_QUEUES, QUEUE_AI_TASKS, QUEUE_COMBAT_TASKS, QUEUE_MARKETPLACE_TASKS
# Redis URL for workers
REDIS_URL = os.getenv('REDIS_URL', 'redis://localhost:6379/0')
# Worker configuration
WORKER_CONFIG = {
# Queues to listen on (in priority order)
'queues': ALL_QUEUES,
# Worker behavior settings
'worker_kwargs': {
'name': None, # Auto-generated if None
'default_result_ttl': 3600, # 1 hour
'default_worker_ttl': 420, # 7 minutes
'job_monitoring_interval': 5, # Check job status every 5 seconds
'disable_default_exception_handler': False,
'log_job_description': True,
},
# Burst mode (process jobs then exit)
'burst': False,
# Logging
'logging_level': os.getenv('LOG_LEVEL', 'INFO'),
}
# Scheduler configuration (for periodic tasks)
SCHEDULER_CONFIG = {
'interval': 60, # Check for scheduled jobs every 60 seconds
}
# Job retry configuration
RETRY_CONFIG = {
'max_retries': 3,
'retry_delays': [60, 300, 900], # 1 min, 5 min, 15 min
}
# Queue-specific worker settings (for specialized workers)
SPECIALIZED_WORKERS = {
'ai_worker': {
'queues': [QUEUE_AI_TASKS],
'description': 'Dedicated worker for AI generation tasks',
},
'combat_worker': {
'queues': [QUEUE_COMBAT_TASKS],
'description': 'Dedicated worker for combat processing',
},
'marketplace_worker': {
'queues': [QUEUE_MARKETPLACE_TASKS],
'description': 'Dedicated worker for marketplace tasks',
},
}