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())