diff --git a/redash/settings/__init__.py b/redash/settings/__init__.py index a8c09a78925..60dac37a99c 100644 --- a/redash/settings/__init__.py +++ b/redash/settings/__init__.py @@ -222,6 +222,14 @@ os.environ.get("REDASH_STATIC_ASSETS_PATH", "../client/dist/") ) +# Time limit (in seconds) for scheduled queries. Set this to -1 to execute without a time limit. +SCHEDULED_QUERY_TIME_LIMIT = int( + os.environ.get("REDASH_SCHEDULED_QUERY_TIME_LIMIT", -1) +) + +# Time limit (in seconds) for adhoc queries. Set this to -1 to execute without a time limit. +ADHOC_QUERY_TIME_LIMIT = int(os.environ.get("REDASH_ADHOC_QUERY_TIME_LIMIT", -1)) + JOB_EXPIRY_TIME = int(os.environ.get("REDASH_JOB_EXPIRY_TIME", 3600 * 12)) JOB_DEFAULT_FAILURE_TTL = int( os.environ.get("REDASH_JOB_DEFAULT_FAILURE_TTL", 7 * 24 * 60 * 60) diff --git a/redash/settings/dynamic_settings.py b/redash/settings/dynamic_settings.py index c58de011d85..33f3f402772 100644 --- a/redash/settings/dynamic_settings.py +++ b/redash/settings/dynamic_settings.py @@ -1,17 +1,11 @@ -import os -from .helpers import int_or_none - - # Replace this method with your own implementation in case you want to limit the time limit on certain queries or users. def query_time_limit(is_scheduled, user_id, org_id): - scheduled_time_limit = int_or_none( - os.environ.get("REDASH_SCHEDULED_QUERY_TIME_LIMIT", None) - ) - adhoc_time_limit = int_or_none( - os.environ.get("REDASH_ADHOC_QUERY_TIME_LIMIT", None) - ) + from redash import settings - return scheduled_time_limit if is_scheduled else adhoc_time_limit + if is_scheduled: + return settings.SCHEDULED_QUERY_TIME_LIMIT + else: + return settings.ADHOC_QUERY_TIME_LIMIT def periodic_jobs():