import logging.config import traceback from datetime import datetime, timedelta from time import sleep, time import fcbsync_dbphoto_mysql from auto_email.error_email import send_error_email from log import LOGGING_CONFIG if __name__ == '__main__': program_name = 'AI赋能数据库同步脚本' logging.config.dictConfig(LOGGING_CONFIG) try: logging.info(f"【{program_name}】开始运行") while 1: if 8 <= datetime.now().hour < 18: # 白天间隔10分钟 sleep_time = 10 * 60 else: # 夜间间隔20分钟 sleep_time = 20 * 60 # 执行同步 start_time = time() fcbsync_dbphoto_mysql.main() end_time = time() elapsed_time = end_time - start_time if elapsed_time > 60: error_message = f'警告!同步脚本执行时间高达{elapsed_time}秒,请检查程序运行状态!' logging.error(error_message) send_error_email(program_name, '超时警告', error_message) logging.info(f'下一次同步时间:{datetime.now() + timedelta(seconds=sleep_time)}') sleep(sleep_time) except Exception as e: error_logger = logging.getLogger("error") error_logger.error(traceback.format_exc()) send_error_email(program_name, repr(e), traceback.format_exc())