File tree Expand file tree Collapse file tree 1 file changed +17
-3
lines changed
medcat-service/medcat_service Expand file tree Collapse file tree 1 file changed +17
-3
lines changed Original file line number Diff line number Diff line change 11import logging
2+ import threading
23from functools import lru_cache
34from typing import Annotated
45
1314@lru_cache
1415def get_settings () -> Settings :
1516 settings = Settings ()
16- log .debug ( "Using settings: %s" , settings )
17+ log .info ( f"Starting service using settings: ' { settings } '" )
1718 return settings
1819
1920
21+ _def_medcat_processor : tuple [Settings , MedCatProcessor ] | None = None
22+ _def_medcat_processor_lock = threading .Lock ()
23+
24+
25+ def get_medcat_processor_singleton (settings : Settings ) -> MedCatProcessor :
26+ with _def_medcat_processor_lock :
27+ global _def_medcat_processor
28+ if _def_medcat_processor is None or _def_medcat_processor [0 ] != settings :
29+ log .info ("Creating new MedCatProcessor using settings: %s" , settings )
30+ _def_medcat_processor = (settings , MedCatProcessor (settings ))
31+ return _def_medcat_processor [1 ]
32+
33+
2034@lru_cache
2135def get_medcat_processor (settings : Annotated [Settings , Depends (get_settings )]) -> MedCatProcessor :
22- log .debug ("Creating new Medcat Processsor using settings: %s" , settings )
23- return MedCatProcessor (settings )
36+ log .debug ("Creating new medcat processor due to cache miss" )
37+ return get_medcat_processor_singleton (settings )
2438
2539
2640MedCatProcessorDep = Annotated [MedCatProcessor , Depends (get_medcat_processor )]
You can’t perform that action at this time.
0 commit comments