Class: SchedulerZoomTokenRefreshWorker
- Inherits:
-
Object
- Object
- SchedulerZoomTokenRefreshWorker
- Includes:
- Sidekiq::Job
- Defined in:
- app/workers/scheduler_zoom_token_refresh_worker.rb
Overview
Proactively refreshes Zoom OAuth tokens before they expire.
Zoom access tokens expire after 1 hour. This worker runs every 45 minutes
and refreshes any Zoom token expiring within the next 30 minutes, ensuring
uninterrupted API access without relying solely on 401-driven refreshes.
Zoom refresh tokens expire after 90 days of non-use — this worker keeps
them warm so they never go stale.
Constant Summary collapse
- REFRESH_WINDOW =
30.minutes
Instance Method Summary collapse
Instance Method Details
#perform ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'app/workers/scheduler_zoom_token_refresh_worker.rb', line 19 def perform credentials = OauthCredential .where(provider: Zoom::OauthService::PROVIDER) .expiring_within(REFRESH_WINDOW) if credentials.none? Rails.logger.info('[SchedulerZoomTokenRefreshWorker] No Zoom tokens expiring soon — nothing to refresh') return end Rails.logger.info("[SchedulerZoomTokenRefreshWorker] Refreshing #{credentials.count} Zoom token(s)") credentials.find_each do |cred| refresh_credential(cred) end end |