1
0
Fork 0
mirror of https://github.com/seanmorley15/AdventureLog.git synced 2025-07-23 23:09:37 +02:00
AdventureLog/backend/server/adventures/scheduler.py
2024-08-21 10:26:17 -04:00

56 lines
No EOL
1.8 KiB
Python

# import logging
# from apscheduler.schedulers.background import BackgroundScheduler
# from django_apscheduler.jobstores import DjangoJobStore
# from django_apscheduler import util
# from django.conf import settings
# from django.core.management import call_command
# from django.db import connections
# from django.db.utils import OperationalError
# import time
# logger = logging.getLogger(__name__)
# def run_worldtravel_seed():
# logger.info("Starting worldtravel-seed job")
# try:
# call_command('worldtravel-seed', '--force')
# logger.info("worldtravel-seed job completed successfully")
# except Exception as e:
# logger.error(f"Error in worldtravel-seed job: {str(e)}")
# def database_ready():
# db_conn = connections['default']
# try:
# db_conn.cursor()
# except OperationalError:
# return False
# else:
# return True
# @util.close_old_connections
# def start_scheduler():
# scheduler = BackgroundScheduler(timezone=settings.TIME_ZONE)
# scheduler.add_jobstore(DjangoJobStore(), "default")
# # Wait for the database to be ready
# retry_count = 0
# max_retries = 2 # Set to 2 attempts
# while not database_ready():
# if retry_count >= max_retries:
# logger.error("Database not available after 2 attempts. Scheduler not started.")
# return None
# logger.info("Database not ready. Waiting before retry...")
# time.sleep(2) # Wait for 2 seconds before retrying
# retry_count += 1
# scheduler.add_job(
# run_worldtravel_seed,
# trigger="interval",
# hours=24,
# id="worldtravel_seed",
# max_instances=1,
# replace_existing=True,
# )
# logger.info("Starting scheduler...")
# scheduler.start()
# return scheduler