78 lines
1.9 KiB
Python
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',
|
|
},
|
|
}
|