From ef4dbda22304e6a2261abc960d4d5d449df3353d Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Fri, 12 Mar 2021 15:35:55 +1100 Subject: [PATCH] Catch errors if the DB is not up --- InvenTree/InvenTree/tasks.py | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/InvenTree/InvenTree/tasks.py b/InvenTree/InvenTree/tasks.py index def9abc35d..3dcfb66422 100644 --- a/InvenTree/InvenTree/tasks.py +++ b/InvenTree/InvenTree/tasks.py @@ -7,7 +7,9 @@ import requests import logging from datetime import datetime, timedelta + from django.core.exceptions import AppRegistryNotReady +from django.db.utils import OperationalError, ProgrammingError logger = logging.getLogger(__name__) @@ -25,15 +27,19 @@ def schedule_task(taskname, **kwargs): logger.warning("Could not start background tasks - App registry not ready") return - if Schedule.objects.filter(func=taskname).exists(): - logger.info(f"Scheduled task '{taskname}' already exists. (Skipping)") - else: - logger.info(f"Creating scheduled task '{taskname}'") + try: + if Schedule.objects.filter(func=taskname).exists(): + logger.info(f"Scheduled task '{taskname}' already exists. (Skipping)") + else: + logger.info(f"Creating scheduled task '{taskname}'") - Schedule.objects.create( - func=taskname, - **kwargs - ) + Schedule.objects.create( + func=taskname, + **kwargs + ) + except (OperationalError, ProgrammingError): + # Required if the DB is not ready yet + pass def heartbeat():