From a4a1a53fde2408300317eb6ee064431e61aafcf9 Mon Sep 17 00:00:00 2001 From: Omer Lachish Date: Sun, 9 Feb 2020 11:24:15 +0000 Subject: [PATCH 1/2] default query execution time limit to 1 hour --- redash/settings/__init__.py | 8 ++++++++ redash/settings/dynamic_settings.py | 16 +++++----------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/redash/settings/__init__.py b/redash/settings/__init__.py index a8c09a78925..755cf4ee32f 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 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", 3600) +) + +# Time limit 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", 3600)) + 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(): From 262c79df6c3d0117d36f79739917bd1659226076 Mon Sep 17 00:00:00 2001 From: Omer Lachish Date: Tue, 11 Feb 2020 08:50:14 +0000 Subject: [PATCH 2/2] use -1 (run infinitely) as a default limit --- redash/settings/__init__.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/redash/settings/__init__.py b/redash/settings/__init__.py index 755cf4ee32f..60dac37a99c 100644 --- a/redash/settings/__init__.py +++ b/redash/settings/__init__.py @@ -222,13 +222,13 @@ os.environ.get("REDASH_STATIC_ASSETS_PATH", "../client/dist/") ) -# Time limit for scheduled queries. Set this to -1 to execute without a time limit. +# 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", 3600) + os.environ.get("REDASH_SCHEDULED_QUERY_TIME_LIMIT", -1) ) -# Time limit 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", 3600)) +# 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(