Add scheduled handler for cron-based session cleanup

- Implements scheduled() function to handle cron triggers
- Cleans up expired sessions every 5 minutes
- Fixes 'Handler does not export a scheduled() function' error
- Deletes sessions where expires_at < current timestamp
This commit is contained in:
2025-11-07 23:00:58 +01:00
parent 364eeb6538
commit 5d8a432de0

View File

@@ -36,4 +36,25 @@ export default {
// Handle request
return app.fetch(request, env, ctx);
},
/**
* Scheduled handler for cron triggers
* Runs every 5 minutes to clean up expired sessions
*/
async scheduled(event: ScheduledEvent, env: Env, ctx: ExecutionContext): Promise<void> {
const storage = new D1Storage(env.DB);
const now = Date.now();
try {
// Delete expired sessions
await storage.db
.prepare('DELETE FROM sessions WHERE expires_at < ?')
.bind(now)
.run();
console.log(`Cleaned up expired sessions at ${new Date(now).toISOString()}`);
} catch (error) {
console.error('Error cleaning up sessions:', error);
}
},
};