1
0
Fork 0
mirror of https://github.com/seanmorley15/AdventureLog.git synced 2025-07-22 22:39:36 +02:00

remove scheduler for now

This commit is contained in:
Sean Morley 2024-08-21 10:26:17 -04:00
parent d1c194dc3a
commit 02d2d62f47
2 changed files with 54 additions and 54 deletions

View file

@ -5,7 +5,7 @@ class AdventuresConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField' default_auto_field = 'django.db.models.BigAutoField'
name = 'adventures' name = 'adventures'
def ready(self): # def ready(self):
if settings.SCHEDULER_AUTOSTART: # if settings.SCHEDULER_AUTOSTART:
from .scheduler import start_scheduler # from .scheduler import start_scheduler
start_scheduler() # start_scheduler()

View file

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