You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.3 KiB
Python
63 lines
1.3 KiB
Python
#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()
|
|
|
|
|
|
|