Merge pull request #158 from redlib-org/oauth_proper_atomics

fix(oauth): reset rate limit earlier in refresh cycle
This commit is contained in:
Matthew Esposito 2024-06-26 22:20:00 -04:00 committed by GitHub
commit 023cc8505b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 1 additions and 1 deletions

View File

@ -320,6 +320,7 @@ pub async fn json(path: String, quarantine: bool) -> Result<Value, String> {
let current_rate_limit = OAUTH_RATELIMIT_REMAINING.load(Ordering::Relaxed); let current_rate_limit = OAUTH_RATELIMIT_REMAINING.load(Ordering::Relaxed);
if current_rate_limit < 10 { if current_rate_limit < 10 {
warn!("Rate limit {current_rate_limit} is low. Spawning force_refresh_token()"); warn!("Rate limit {current_rate_limit} is low. Spawning force_refresh_token()");
OAUTH_RATELIMIT_REMAINING.store(99, Ordering::Relaxed);
tokio::spawn(force_refresh_token()); tokio::spawn(force_refresh_token());
} }

View File

@ -133,7 +133,6 @@ pub async fn token_daemon() {
pub async fn force_refresh_token() { pub async fn force_refresh_token() {
trace!("Rolling over refresh token. Current rate limit: {}", OAUTH_RATELIMIT_REMAINING.load(Ordering::Relaxed)); trace!("Rolling over refresh token. Current rate limit: {}", OAUTH_RATELIMIT_REMAINING.load(Ordering::Relaxed));
OAUTH_CLIENT.write().await.refresh().await; OAUTH_CLIENT.write().await.refresh().await;
OAUTH_RATELIMIT_REMAINING.store(99, Ordering::Relaxed);
} }
#[derive(Debug, Clone, Default)] #[derive(Debug, Clone, Default)]