mirror of
https://github.com/wahyd4/links.git
synced 2026-08-09 05:06:16 +10:00
41 lines
985 B
Python
41 lines
985 B
Python
"""
|
|
APScheduler configuration for background tasks
|
|
"""
|
|
import logging
|
|
from apscheduler.schedulers.background import BackgroundScheduler
|
|
from apscheduler.executors.pool import ThreadPoolExecutor
|
|
from django.conf import settings
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
# Configure executors
|
|
executors = {
|
|
'default': ThreadPoolExecutor(20),
|
|
}
|
|
|
|
# Configure job defaults
|
|
job_defaults = {
|
|
'coalesce': False,
|
|
'max_instances': 3,
|
|
'misfire_grace_time': 300, # 5 minutes
|
|
}
|
|
|
|
# Create scheduler instance
|
|
scheduler = BackgroundScheduler(
|
|
executors=executors,
|
|
job_defaults=job_defaults,
|
|
timezone=settings.TIME_ZONE
|
|
)
|
|
|
|
def start_scheduler():
|
|
"""Start the scheduler if not already running"""
|
|
if not scheduler.running:
|
|
scheduler.start()
|
|
logger.info("APScheduler started")
|
|
|
|
def shutdown_scheduler():
|
|
"""Shutdown the scheduler gracefully"""
|
|
if scheduler.running:
|
|
scheduler.shutdown()
|
|
logger.info("APScheduler shutdown")
|