1
0
Fork 0

fix(api): restart worker threads when their respective queues are full

This commit is contained in:
Sean Sube 2023-03-25 13:46:12 -05:00
parent 88f4713e23
commit 95a61f3573
Signed by: ssube
GPG Key ID: 3EED7B957D362AF1
1 changed files with 8 additions and 0 deletions

View File

@ -320,12 +320,20 @@ class DevicePoolExecutor:
if self.threads["logger"].is_alive(): if self.threads["logger"].is_alive():
logger.debug("logger worker is running") logger.debug("logger worker is running")
if self.logs.full():
logger.warning("logger queue is full, restarting worker")
self.threads["logger"].join(self.join_timeout)
self.create_logger_worker()
else: else:
logger.warning("restarting logger worker") logger.warning("restarting logger worker")
self.create_logger_worker() self.create_logger_worker()
if self.threads["progress"].is_alive(): if self.threads["progress"].is_alive():
logger.debug("progress worker is running") logger.debug("progress worker is running")
if self.progress.full():
logger.warning("progress queue is full, restarting worker")
self.threads["progress"].join(self.join_timeout)
self.create_progress_worker()
else: else:
logger.warning("restarting progress worker") logger.warning("restarting progress worker")
self.create_progress_worker() self.create_progress_worker()