import time from DB import DBVidcon, DBSA from report_video import DailymotionClient import logger db = DBVidcon() d = DailymotionClient() k = { "open": 1, "solved": 2, "awaiting your reply": 3, } last_main_run = 0 last_subsequent_run = 0 MAIN_INTERVAL = 60 * 5 # 每 5 分钟执行一次 SUBSEQUENT_INTERVAL = 60 * 60 # 每 60 分钟执行一次 while True: now = int(time.time()) # 处理主流程 if now - last_main_run >= MAIN_INTERVAL: last_main_run = now lis = db.get_report_video() if len(lis) > 0: for li in lis: logger.logger.info(f"name:{li['name_title']},link:{li['link']} ") try: info, report_id, status, report_ts = d.process_ticket(li['name_title'], li['link']) subsequent_status = k.get(status, 1) db.update_fight_record_status( li['id'], report_id, 2, f"http://123.58.197.91:5000/image/{info}", report_ts, subsequent_status ) db.flush() except Exception as e: logger.logger.error(f"ID:{li['id']}, e:{e}") db.update_fight_record_status(li['id'], 0, 3, str(e)) time.sleep(60) # 出错延迟 if now - last_subsequent_run >= SUBSEQUENT_INTERVAL: last_subsequent_run = now subsequent_list = db.get_subsequent_report_video() if len(subsequent_list) > 0: for li in subsequent_list: rs_id = li['id'] r_id = li['report_id'] logger.logger.info(f"subsequent id:{rs_id},report_id:{r_id} ") try: subsequent_status, info = d.report_follow_up(r_id) db.update_subsequent_status_by_id( rs_id, subsequent_status, f"http://123.58.197.91:5000/image/{info}" ) except Exception as e: logger.logger.error(f"ID:{rs_id}, e:{e}") db.update_subsequent_status_by_id(rs_id, 1, str(e)) time.sleep(5) # 避免频繁请求 time.sleep(5)