Skip to content

Commit

Permalink
Open mongo-workers using 'with'
Browse files Browse the repository at this point in the history
  • Loading branch information
Cmurilochem committed Apr 5, 2024
1 parent a3731fc commit 4bdcca4
Showing 1 changed file with 7 additions and 11 deletions.
18 changes: 7 additions & 11 deletions n3fit/src/n3fit/hyper_optimization/mongofiletrials.py
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,6 @@ def __init__(
f"mongo://{self.db_host}:{self.db_port}/{self._process_db_name(self.db_name)}/jobs"
)
self.workers = []
self.log_files = []
self.job_output_name = replica_path.parts[-3]

self._store_trial = False
Expand Down Expand Up @@ -269,26 +268,23 @@ def start_mongo_workers(

# create log files to redirect the mongo-workers output
mongo_workers_logfile = f"mongo-worker_{i+1}_{self.job_output_name}.log"
log_file = open(mongo_workers_logfile, 'w')
self.log_files.append(log_file)
# run mongo workers
worker = subprocess.Popen(
args, env=my_env, stdout=log_file, stderr=subprocess.STDOUT
)
self.workers.append(worker)
with open(mongo_workers_logfile, mode='w', encoding="utf-8") as log_file:
# run mongo workers
worker = subprocess.Popen(
args, env=my_env, stdout=log_file, stderr=subprocess.STDOUT
)
self.workers.append(worker)
log.info(f"Started mongo worker {i+1}/{self.num_workers}")
except OSError as err:
log_file.close()
msg = f"Failed to execute {args}. Make sure you have MongoDB installed."
raise EnvironmentError(msg) from err

def stop_mongo_workers(self):
"""Terminates all active mongo workers."""
for worker, log_file in zip(self.workers, self.log_files):
for worker in self.workers:
try:
worker.terminate()
worker.wait()
log_file.close()
log.info(f"Stopped mongo worker {self.workers.index(worker)+1}/{self.num_workers}")
except Exception as err:
log.error(
Expand Down

0 comments on commit 4bdcca4

Please sign in to comment.