39 lines
1.4 KiB
Python
39 lines
1.4 KiB
Python
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 > 30:
|
|
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())
|