mirror of
https://github.com/docling-project/docling-serve.git
synced 2026-03-07 22:33:44 +00:00
fix: configure failure_ttl for RQ failed jobs (#519)
Signed-off-by: Pawel Rein <pawel.rein@prezi.com>
This commit is contained in:
@@ -408,6 +408,7 @@ def rq_worker() -> Any:
|
||||
sub_channel=docling_serve_settings.eng_rq_sub_channel,
|
||||
scratch_dir=get_scratch(),
|
||||
results_ttl=docling_serve_settings.eng_rq_results_ttl,
|
||||
failure_ttl=docling_serve_settings.eng_rq_failure_ttl,
|
||||
redis_max_connections=docling_serve_settings.eng_rq_redis_max_connections,
|
||||
redis_socket_timeout=docling_serve_settings.eng_rq_redis_socket_timeout,
|
||||
redis_socket_connect_timeout=docling_serve_settings.eng_rq_redis_socket_connect_timeout,
|
||||
|
||||
@@ -496,6 +496,7 @@ def get_async_orchestrator() -> BaseOrchestrator:
|
||||
kwargs={"task_data": task_data},
|
||||
job_id=task_id,
|
||||
timeout=14400,
|
||||
failure_ttl=docling_serve_settings.eng_rq_failure_ttl,
|
||||
)
|
||||
|
||||
await self.init_task_tracking(task)
|
||||
@@ -511,6 +512,7 @@ def get_async_orchestrator() -> BaseOrchestrator:
|
||||
sub_channel=docling_serve_settings.eng_rq_sub_channel,
|
||||
scratch_dir=get_scratch(),
|
||||
results_ttl=docling_serve_settings.eng_rq_results_ttl,
|
||||
failure_ttl=docling_serve_settings.eng_rq_failure_ttl,
|
||||
redis_max_connections=docling_serve_settings.eng_rq_redis_max_connections,
|
||||
redis_socket_timeout=docling_serve_settings.eng_rq_redis_socket_timeout,
|
||||
redis_socket_connect_timeout=docling_serve_settings.eng_rq_redis_socket_connect_timeout,
|
||||
|
||||
@@ -89,6 +89,7 @@ class DoclingServeSettings(BaseSettings):
|
||||
eng_rq_results_prefix: str = "docling:results"
|
||||
eng_rq_sub_channel: str = "docling:updates"
|
||||
eng_rq_results_ttl: int = 3_600 * 4 # 4 hours default
|
||||
eng_rq_failure_ttl: int = 3_600 * 4 # 4 hours default
|
||||
eng_rq_redis_max_connections: int = 50 # Connection pool size
|
||||
eng_rq_redis_socket_timeout: Optional[float] = None # Socket timeout in seconds
|
||||
eng_rq_redis_socket_connect_timeout: Optional[float] = (
|
||||
|
||||
20
tests/test_failure_ttl.py
Normal file
20
tests/test_failure_ttl.py
Normal file
@@ -0,0 +1,20 @@
|
||||
"""Tests for RQ failure_ttl configuration in docling-serve."""
|
||||
|
||||
from docling_serve.settings import DoclingServeSettings
|
||||
|
||||
|
||||
class TestFailureTTLSettings:
|
||||
def test_default_failure_ttl_matches_results_ttl(self):
|
||||
settings = DoclingServeSettings(
|
||||
eng_rq_redis_url="redis://localhost:6379/",
|
||||
)
|
||||
assert settings.eng_rq_failure_ttl == settings.eng_rq_results_ttl
|
||||
assert settings.eng_rq_failure_ttl == 3_600 * 4
|
||||
|
||||
def test_failure_ttl_is_configurable(self):
|
||||
settings = DoclingServeSettings(
|
||||
eng_rq_redis_url="redis://localhost:6379/",
|
||||
eng_rq_failure_ttl=7200,
|
||||
)
|
||||
assert settings.eng_rq_failure_ttl == 7200
|
||||
assert settings.eng_rq_results_ttl == 3_600 * 4
|
||||
Reference in New Issue
Block a user