Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: refetch metadata token #93

Closed

Conversation

vladkolotvin
Copy link

closes #89

@@ -67,7 +67,7 @@ export class MetadataTokenService implements TokenService {
`failed to fetch token from metadata service: ${lastError}`,
);
}
setTimeout(async () => {
setInterval(async () => {
try {
this.token = await this.fetchToken();
} catch {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

А давай, пожалуйста, ошибку все же обработаетм? Хотя бы ворнинг в консоль таки выбросим.

@nikolaymatrosov
Copy link
Contributor

У сервиса метаданных есть rate limiter (60rps). Если пересоздавать Session и не чистить за собой, может сложиться так, что накопится много интервальных колбеков, которые упрутся в лимит.

@DavyJohnes
Copy link
Contributor

DavyJohnes commented Oct 31, 2022

У сервиса метаданных есть rate limiter (60rps). Если пересоздавать Session и не чистить за собой, может сложиться так, что накопится много интервальных колбеков, которые упрутся в лимит.

Справедливо!
Кажется с учетом этого правильным будет такой подход:

  • при каждом обращении к сервису метадаты сохранять в поле класса tokenTimestamp.
  • при кажом вызове getToken проверять что currentTimestamp - tokenTimestamp <= 30, в противном случае перезапрашивать токен.

@DavyJohnes
Copy link
Contributor

@DavyJohnes DavyJohnes closed this Aug 7, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Перезапрос токена не работает
3 participants