refactor: dynamically retrieve maximum buffer size from environment in SizedLogBuffer (#4334)
* Refactor logger to dynamically retrieve max buffer size from environment variable * fix: add setter to max property
This commit is contained in:
parent
be1ba57cb5
commit
82915be03f
1 changed files with 14 additions and 5 deletions
|
|
@ -32,16 +32,12 @@ class SizedLogBuffer:
|
||||||
The buffer can be overwritten by an env variable LANGFLOW_LOG_RETRIEVER_BUFFER_SIZE
|
The buffer can be overwritten by an env variable LANGFLOW_LOG_RETRIEVER_BUFFER_SIZE
|
||||||
because the logger is initialized before the settings_service are loaded.
|
because the logger is initialized before the settings_service are loaded.
|
||||||
"""
|
"""
|
||||||
self.max: int = 0
|
|
||||||
env_buffer_size = os.getenv("LANGFLOW_LOG_RETRIEVER_BUFFER_SIZE", "0")
|
|
||||||
if env_buffer_size.isdigit():
|
|
||||||
self.max = int(env_buffer_size)
|
|
||||||
|
|
||||||
self.buffer: deque = deque()
|
self.buffer: deque = deque()
|
||||||
|
|
||||||
self._max_readers = max_readers
|
self._max_readers = max_readers
|
||||||
self._wlock = Lock()
|
self._wlock = Lock()
|
||||||
self._rsemaphore = Semaphore(max_readers)
|
self._rsemaphore = Semaphore(max_readers)
|
||||||
|
self._max = 0
|
||||||
|
|
||||||
def get_write_lock(self) -> Lock:
|
def get_write_lock(self) -> Lock:
|
||||||
return self._wlock
|
return self._wlock
|
||||||
|
|
@ -106,6 +102,19 @@ class SizedLogBuffer:
|
||||||
finally:
|
finally:
|
||||||
self._rsemaphore.release()
|
self._rsemaphore.release()
|
||||||
|
|
||||||
|
@property
|
||||||
|
def max(self) -> int:
|
||||||
|
# Get it dynamically to allow for env variable changes
|
||||||
|
if self._max == 0:
|
||||||
|
env_buffer_size = os.getenv("LANGFLOW_LOG_RETRIEVER_BUFFER_SIZE", "0")
|
||||||
|
if env_buffer_size.isdigit():
|
||||||
|
self._max = int(env_buffer_size)
|
||||||
|
return self._max
|
||||||
|
|
||||||
|
@max.setter
|
||||||
|
def max(self, value: int) -> None:
|
||||||
|
self._max = value
|
||||||
|
|
||||||
def enabled(self) -> bool:
|
def enabled(self) -> bool:
|
||||||
return self.max > 0
|
return self.max > 0
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue