成功调用后的条件写入
(
self,
filename: str,
model_name: Optional[str] = None,
mode: str = "geminicli"
)
| 987 | return False |
| 988 | |
| 989 | async def record_success( |
| 990 | self, |
| 991 | filename: str, |
| 992 | model_name: Optional[str] = None, |
| 993 | mode: str = "geminicli" |
| 994 | ) -> None: |
| 995 | """成功调用后的条件写入""" |
| 996 | self._ensure_initialized() |
| 997 | filename = os.path.basename(filename) |
| 998 | |
| 999 | try: |
| 1000 | table_name = self._get_table_name(mode) |
| 1001 | async with self._pool.acquire() as conn: |
| 1002 | await conn.execute(f""" |
| 1003 | UPDATE {table_name} |
| 1004 | SET last_success = EXTRACT(EPOCH FROM NOW()), |
| 1005 | error_codes = '[]', |
| 1006 | error_messages = '{{}}', |
| 1007 | updated_at = EXTRACT(EPOCH FROM NOW()) |
| 1008 | WHERE filename = $1 |
| 1009 | AND (error_codes IS NOT NULL AND error_codes != '[]' AND error_codes != '') |
| 1010 | """, filename) |
| 1011 | |
| 1012 | if model_name: |
| 1013 | row = await conn.fetchrow( |
| 1014 | f"SELECT model_cooldowns FROM {table_name} WHERE filename = $1", filename |
| 1015 | ) |
| 1016 | if row: |
| 1017 | cooldowns = json.loads(row["model_cooldowns"] or "{}") |
| 1018 | if model_name in cooldowns: |
| 1019 | cooldowns.pop(model_name) |
| 1020 | await conn.execute( |
| 1021 | f""" |
| 1022 | UPDATE {table_name} |
| 1023 | SET model_cooldowns = $1, updated_at = EXTRACT(EPOCH FROM NOW()) |
| 1024 | WHERE filename = $2 |
| 1025 | """, |
| 1026 | json.dumps(cooldowns), filename |
| 1027 | ) |
| 1028 | |
| 1029 | except Exception as e: |
| 1030 | log.error(f"Error recording success for {filename}: {e}") |
no test coverage detected