diff --git a/redash/settings/__init__.py b/redash/settings/__init__.py index 7247f020ca..59fe62c630 100644 --- a/redash/settings/__init__.py +++ b/redash/settings/__init__.py @@ -41,6 +41,11 @@ 'ssl_keyfile': os.environ.get("REDASH_CELERY_BROKER_SSL_KEYFILE"), } if CELERY_BROKER_USE_SSL else None +CELERY_WORKER_PREFETCH_MULTIPLIER = int(os.environ.get("REDASH_CELERY_WORKER_PREFETCH_MULTIPLIER", 1)) +CELERY_ACCEPT_CONTENT = os.environ.get("REDASH_CELERY_ACCEPT_CONTENT", "json").split(",") +CELERY_TASK_SERIALIZER = os.environ.get("REDASH_CELERY_TASK_SERIALIZER", "json") +CELERY_RESULT_SERIALIZER = os.environ.get("REDASH_CELERY_RESULT_SERIALIZER", "json") + # The following enables periodic job (every 5 minutes) of removing unused query results. QUERY_RESULTS_CLEANUP_ENABLED = parse_boolean(os.environ.get("REDASH_QUERY_RESULTS_CLEANUP_ENABLED", "true")) QUERY_RESULTS_CLEANUP_COUNT = int(os.environ.get("REDASH_QUERY_RESULTS_CLEANUP_COUNT", "100")) diff --git a/redash/worker.py b/redash/worker.py index 608323d34b..4caca5bbf3 100644 --- a/redash/worker.py +++ b/redash/worker.py @@ -62,8 +62,11 @@ timezone='UTC', result_expires=settings.CELERY_RESULT_EXPIRES, worker_log_format=settings.CELERYD_WORKER_LOG_FORMAT, - worker_task_log_format=settings.CELERYD_WORKER_TASK_LOG_FORMAT) - + worker_task_log_format=settings.CELERYD_WORKER_TASK_LOG_FORMAT, + worker_prefetch_multiplier=settings.CELERY_WORKER_PREFETCH_MULTIPLIER, + accept_content=settings.CELERY_ACCEPT_CONTENT, + task_serializer=settings.CELERY_TASK_SERIALIZER, + result_serializer=settings.CELERY_RESULT_SERIALIZER) # Create a new Task base class, that pushes a new Flask app context to allow DB connections if needed. TaskBase = celery.Task