MCPcopy Create free account
hub / github.com/TheSmallHanCat/flow2api / _refresh_at_inner

Method _refresh_at_inner

src/services/token_manager.py:564–592  ·  view source on GitHub ↗

Perform exactly one real AT refresh attempt.

(self, token_id: int)

Source from the content-addressed store, hash-verified

562
563
564 async def _refresh_at_inner(self, token_id: int) -> bool:
565 """Perform exactly one real AT refresh attempt."""
566 refresh_lock = await self._get_token_lock(
567 self._refresh_locks,
568 self._refresh_lock_guard,
569 token_id,
570 )
571 async with refresh_lock:
572 token = await self.db.get_token(token_id)
573 if not token:
574 return False
575
576 result = await self._do_refresh_at(token_id, token.st, token)
577 if result:
578 return True
579
580 debug_logger.log_info(f"[AT_REFRESH] Token {token_id}: first AT refresh failed, trying ST refresh...")
581 new_st = await self._try_refresh_st(token_id, token)
582 if new_st:
583 debug_logger.log_info(f"[AT_REFRESH] Token {token_id}: ST refreshed, retrying AT refresh...")
584 latest_token = await self.db.get_token(token_id) or token
585 result = await self._do_refresh_at(token_id, new_st, latest_token)
586 if result:
587 return True
588
589 debug_logger.log_error(f"[AT_REFRESH] Token {token_id}: all refresh attempts failed, disabling token")
590 await self.disable_token(token_id)
591 self._clear_at_validation_cache(token_id)
592 return False
593
594 async def _refresh_at(self, token_id: int) -> bool:
595 """Coalesce concurrent AT refresh calls for the same token."""

Callers 1

runnerMethod · 0.95

Calls 8

_get_token_lockMethod · 0.95
_do_refresh_atMethod · 0.95
_try_refresh_stMethod · 0.95
disable_tokenMethod · 0.95
log_infoMethod · 0.80
log_errorMethod · 0.80
get_tokenMethod · 0.45

Tested by

no test coverage detected