#coding: utf-8 from main_process import data_load from analysis_data.config_load import get_configs from multiprocessing import Pool from loguru import logger import os import time # 日志配置 log_path = os.path.join(__file__, "../logs/xbank.log") logger.add( log_path, rotation="60 MB", enqueue=True, backtrace=True, diagnose=True, retention=30 ) logger.info("*************************** xbank start ***************************") def get_args_list(args_data): args_list = [] for args in args_data: args_det = args_data[args] det_config = args_det['model'] det_source = args_det['source'] det_list = [det_source, det_config] args_list.append(det_list) return args_list def start_worker(args_list): while True: try: logger.info(f" process {args_list} crashed. Starting...") data_load(args_list) except Exception as e: logger.info(f" process {args_list} crashed. Restarting...") logger.debug(e) def main(): # 加载配置文件 args = '../config_det.yaml' args_data = get_configs(ymal_files=args) args_list = get_args_list(args_data) process_num = len(args_list) with Pool(process_num) as pool: pool.map(start_worker, args_list) if __name__ == "__main__": main()