Browse Source

Revert "Leave initialization in c'tor, just call start() where needed"

This reverts commit d41ceabe82. Which I suspect
does not work because the thread is stateful, i.e. after os.fork the thread in
copy of the process thinks it has already been started, even though it is not
alive. Probably safest to just get a new thread instance if a thread is not alive.
opensearch
Jotham Apaloo 7 years ago
parent
commit
c6c8171a68
1 changed files with 6 additions and 2 deletions
  1. +6
    -2
      logzio/sender.py

+ 6
- 2
logzio/sender.py View File

@ -34,15 +34,19 @@ class LogzioSender:
# Create a queue to hold logs # Create a queue to hold logs
self.queue = queue.Queue() self.queue = queue.Queue()
self._initialize_sending_thread()
def _initialize_sending_thread(self):
self.sending_thread = Thread(target=self._drain_queue) self.sending_thread = Thread(target=self._drain_queue)
self.sending_thread.daemon = False self.sending_thread.daemon = False
self.sending_thread.name = "logzio-sending-thread" self.sending_thread.name = "logzio-sending-thread"
self.sending_thread.start() self.sending_thread.start()
def append(self, logs_message): def append(self, logs_message):
# Queue lib is thread safe, no issue here
if not self.sending_thread.is_alive(): if not self.sending_thread.is_alive():
self.sending_thread.start()
self._initialize_sending_thread()
# Queue lib is thread safe, no issue here
self.queue.put(json.dumps(logs_message)) self.queue.put(json.dumps(logs_message))
def flush(self): def flush(self):


Loading…
Cancel
Save