Let main thread manage consumer threads
This commit is contained in:
parent
ee1910806c
commit
3cfbfd96b0
@ -181,6 +181,16 @@ class Bot(threading.Thread):
|
||||
except:
|
||||
logger.exception("Uncatched exception on server read")
|
||||
|
||||
# Launch new consumer threads if necessary
|
||||
while self.cnsr_queue.qsize() > self.cnsr_thrd_size:
|
||||
# Next launch if two more items in queue
|
||||
self.cnsr_thrd_size += 2
|
||||
|
||||
c = Consumer(self)
|
||||
self.cnsr_thrd.append(c)
|
||||
c.start()
|
||||
|
||||
|
||||
|
||||
# Events methods
|
||||
|
||||
@ -313,25 +323,12 @@ class Bot(threading.Thread):
|
||||
while len(self.events) > 0 and datetime.now(timezone.utc) >= self.events[0].current:
|
||||
evt = self.events.pop(0)
|
||||
self.cnsr_queue.put_nowait(EventConsumer(evt))
|
||||
self._launch_consumers()
|
||||
|
||||
self._update_event_timer()
|
||||
|
||||
|
||||
# Consumers methods
|
||||
|
||||
def _launch_consumers(self):
|
||||
"""Launch new consumer threads if necessary"""
|
||||
|
||||
while self.cnsr_queue.qsize() > self.cnsr_thrd_size:
|
||||
# Next launch if two more items in queue
|
||||
self.cnsr_thrd_size += 2
|
||||
|
||||
c = Consumer(self)
|
||||
self.cnsr_thrd.append(c)
|
||||
c.start()
|
||||
|
||||
|
||||
def add_server(self, srv, autoconnect=True):
|
||||
"""Add a new server to the context
|
||||
|
||||
@ -441,9 +438,6 @@ class Bot(threading.Thread):
|
||||
|
||||
self.cnsr_queue.put_nowait(MessageConsumer(srv, msg))
|
||||
|
||||
# Launch a new thread if necessary
|
||||
self._launch_consumers()
|
||||
|
||||
|
||||
def quit(self):
|
||||
"""Save and unload modules and disconnect servers"""
|
||||
|
Loading…
Reference in New Issue
Block a user