mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-07-02 16:14:39 -05:00
Fix: prevent duplicate cachalot app in Django settings (#10300)
--------- Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
This commit is contained in:
parent
f3b6e15321
commit
733a9674d6
@ -918,7 +918,6 @@ CELERY_BEAT_SCHEDULE_FILENAME = str(DATA_DIR / "celerybeat-schedule.db")
|
|||||||
|
|
||||||
# Cachalot: Database read cache.
|
# Cachalot: Database read cache.
|
||||||
def _parse_cachalot_settings():
|
def _parse_cachalot_settings():
|
||||||
global INSTALLED_APPS
|
|
||||||
ttl = __get_int("PAPERLESS_READ_CACHE_TTL", 3600)
|
ttl = __get_int("PAPERLESS_READ_CACHE_TTL", 3600)
|
||||||
ttl = min(ttl, 31536000) if ttl > 0 else 3600
|
ttl = min(ttl, 31536000) if ttl > 0 else 3600
|
||||||
_, redis_url = _parse_redis_url(
|
_, redis_url = _parse_redis_url(
|
||||||
@ -936,18 +935,18 @@ def _parse_cachalot_settings():
|
|||||||
"CACHALOT_REDIS_URL": redis_url,
|
"CACHALOT_REDIS_URL": redis_url,
|
||||||
"CACHALOT_TIMEOUT": ttl,
|
"CACHALOT_TIMEOUT": ttl,
|
||||||
}
|
}
|
||||||
if result["CACHALOT_ENABLED"]:
|
|
||||||
INSTALLED_APPS.append("cachalot")
|
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
_cachalot_settings = _parse_cachalot_settings()
|
cachalot_settings = _parse_cachalot_settings()
|
||||||
CACHALOT_ENABLED = _cachalot_settings["CACHALOT_ENABLED"]
|
CACHALOT_ENABLED = cachalot_settings["CACHALOT_ENABLED"]
|
||||||
CACHALOT_CACHE = _cachalot_settings["CACHALOT_CACHE"]
|
if CACHALOT_ENABLED: # pragma: no cover
|
||||||
CACHALOT_TIMEOUT = _cachalot_settings["CACHALOT_TIMEOUT"]
|
INSTALLED_APPS.append("cachalot")
|
||||||
CACHALOT_QUERY_KEYGEN = _cachalot_settings["CACHALOT_QUERY_KEYGEN"]
|
CACHALOT_CACHE = cachalot_settings["CACHALOT_CACHE"]
|
||||||
CACHALOT_TABLE_KEYGEN = _cachalot_settings["CACHALOT_TABLE_KEYGEN"]
|
CACHALOT_TIMEOUT = cachalot_settings["CACHALOT_TIMEOUT"]
|
||||||
CACHALOT_FINAL_SQL_CHECK = _cachalot_settings["CACHALOT_FINAL_SQL_CHECK"]
|
CACHALOT_QUERY_KEYGEN = cachalot_settings["CACHALOT_QUERY_KEYGEN"]
|
||||||
|
CACHALOT_TABLE_KEYGEN = cachalot_settings["CACHALOT_TABLE_KEYGEN"]
|
||||||
|
CACHALOT_FINAL_SQL_CHECK = cachalot_settings["CACHALOT_FINAL_SQL_CHECK"]
|
||||||
|
|
||||||
|
|
||||||
# Django default & Cachalot cache configuration
|
# Django default & Cachalot cache configuration
|
||||||
@ -968,7 +967,7 @@ def _parse_caches():
|
|||||||
},
|
},
|
||||||
"read-cache": {
|
"read-cache": {
|
||||||
"BACKEND": _CACHE_BACKEND,
|
"BACKEND": _CACHE_BACKEND,
|
||||||
"LOCATION": _parse_cachalot_settings()["CACHALOT_REDIS_URL"],
|
"LOCATION": cachalot_settings["CACHALOT_REDIS_URL"],
|
||||||
"KEY_PREFIX": _REDIS_KEY_PREFIX,
|
"KEY_PREFIX": _REDIS_KEY_PREFIX,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@ -977,9 +976,6 @@ def _parse_caches():
|
|||||||
CACHES = _parse_caches()
|
CACHES = _parse_caches()
|
||||||
|
|
||||||
|
|
||||||
del _cachalot_settings
|
|
||||||
|
|
||||||
|
|
||||||
def default_threads_per_worker(task_workers) -> int:
|
def default_threads_per_worker(task_workers) -> int:
|
||||||
# always leave one core open
|
# always leave one core open
|
||||||
available_cores = max(multiprocessing.cpu_count(), 1)
|
available_cores = max(multiprocessing.cpu_count(), 1)
|
||||||
|
@ -63,26 +63,20 @@ class TestDbCacheSettings:
|
|||||||
},
|
},
|
||||||
)
|
)
|
||||||
def test_cachalot_custom_settings(self):
|
def test_cachalot_custom_settings(self):
|
||||||
cachalot_settings = _parse_cachalot_settings()
|
settings = _parse_cachalot_settings()
|
||||||
assert "cachalot" in settings.INSTALLED_APPS
|
|
||||||
caches = _parse_caches()
|
|
||||||
|
|
||||||
# Modifiable settings
|
assert settings["CACHALOT_ENABLED"]
|
||||||
assert cachalot_settings["CACHALOT_ENABLED"]
|
assert settings["CACHALOT_TIMEOUT"] == 7200
|
||||||
assert cachalot_settings["CACHALOT_TIMEOUT"] == 7200
|
assert settings["CACHALOT_CACHE"] == "read-cache"
|
||||||
assert caches["read-cache"]["LOCATION"] == "redis://localhost:6380/7"
|
|
||||||
|
|
||||||
# Fixed settings
|
|
||||||
assert cachalot_settings["CACHALOT_CACHE"] == "read-cache"
|
|
||||||
assert (
|
assert (
|
||||||
cachalot_settings["CACHALOT_QUERY_KEYGEN"]
|
settings["CACHALOT_QUERY_KEYGEN"]
|
||||||
== "paperless.db_cache.custom_get_query_cache_key"
|
== "paperless.db_cache.custom_get_query_cache_key"
|
||||||
)
|
)
|
||||||
assert (
|
assert (
|
||||||
cachalot_settings["CACHALOT_TABLE_KEYGEN"]
|
settings["CACHALOT_TABLE_KEYGEN"]
|
||||||
== "paperless.db_cache.custom_get_table_cache_key"
|
== "paperless.db_cache.custom_get_table_cache_key"
|
||||||
)
|
)
|
||||||
assert cachalot_settings["CACHALOT_FINAL_SQL_CHECK"] is True
|
assert settings["CACHALOT_FINAL_SQL_CHECK"] is True
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
("env_var_ttl", "expected_cachalot_timeout"),
|
("env_var_ttl", "expected_cachalot_timeout"),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user