import argparse import logging.config import traceback from time import sleep from sqlalchemy import update from auto_email.error_email import send_error_email from db import MysqlSession from db.mysql import ZxPhhd from log import LOGGING_CONFIG from photo_review import auto_photo_review, SEND_ERROR_EMAIL # 项目必须从此处启动,否则代码中的相对路径可能导致错误的发生 if __name__ == '__main__': program_name = '照片审核自动识别脚本' logging.config.dictConfig(LOGGING_CONFIG) parser = argparse.ArgumentParser() parser.add_argument("--clean", default=False, type=bool, help="是否将识别中的案子改为待识别状态") args = parser.parse_args() if args.clean: # 主要用于启动时,清除仍在涂抹中的案子 session = MysqlSession() update_flag = (update(ZxPhhd).where(ZxPhhd.exsuccess_flag == "2").values(exsuccess_flag="1")) session.execute(update_flag) session.commit() session.close() logging.info("已释放残余的识别案子!") else: sleep(5) try: logging.info(f"【{program_name}】开始运行") auto_photo_review.main() except Exception as e: error_logger = logging.getLogger('error') error_logger.error(traceback.format_exc()) if SEND_ERROR_EMAIL: send_error_email(program_name, repr(e), traceback.format_exc())