Renew before expiry
Refresh a token, lease, or session a few minutes before it expires.
Use this to
- Refresh an OAuth access token 5 minutes before it expires
- Renew a distributed lock 30 seconds before its TTL expires
- Re-sign a presigned upload URL ahead of its expiration
- Refresh an external API session token every 50 minutes to prevent timeout
Code
Schedule the first renewal
// token is good for 60 minutes — renew at the 55-minute mark await dk.schedule("refresh-token", { key: "acct_456", delay: "55m", });
When the time comes, refresh and reschedule
dk.handle("refresh-token", async ({ key }) => { const next = await oauth.refresh(key); await db.tokens.update(key, next); // queue the next renewal — one job per account, always await dk.schedule("refresh-token", { key, delay: "55m", }); });
npm install delaykit