Skip to content

Commit

Permalink
fix multi thread face cluster bug (#476)
Browse files Browse the repository at this point in the history
  • Loading branch information
JoinTyang authored Feb 14, 2025
1 parent 951e23c commit a4b057c
Showing 1 changed file with 14 additions and 2 deletions.
16 changes: 14 additions & 2 deletions repo_metadata/index_worker.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ def __init__(self, config):
self.mq = get_mq(self.mq_server, self.mq_port, self.mq_password)
self.face_recognition_manager = FaceRecognitionManager(config)
self.set_signal()
self.worker_list = []

def _parse_config(self, config):
redis_section_name = 'REDIS'
Expand Down Expand Up @@ -75,10 +76,21 @@ def _get_face_cluster_lock_key(self, repo_id):
def tname(self):
return threading.current_thread().name

def clear_worker(self):
for th in self.worker_list:
th.join()
logger.info("All worker threads has stopped.")

def start(self):
for i in range(int(self.worker_num)):
threading.Thread(target=self.face_cluster_handler, name='face_cluster_' + str(i), daemon=True).start()
threading.Thread(target=self.refresh_lock, name='refresh_thread', daemon=True).start()
t = threading.Thread(target=self.face_cluster_handler, name='face_cluster_' + str(i), daemon=True)
t.start()
self.worker_list.append(t)

t = threading.Thread(target=self.refresh_lock, name='refresh_thread', daemon=True)
t.start()
self.worker_list.append(t)
self.clear_worker()

def face_cluster_handler(self):
face_recognition_logger.info('%s starting face cluster' % self.tname)
Expand Down

0 comments on commit a4b057c

Please sign in to comment.