first commit
This commit is contained in:
77
api/config/rq_config.py
Normal file
77
api/config/rq_config.py
Normal file
@@ -0,0 +1,77 @@
|
||||
"""
|
||||
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',
|
||||
},
|
||||
}
|
||||
Reference in New Issue
Block a user