mirror of
https://github.com/beilunyang/moemail.git
synced 2025-12-24 11:30:51 +08:00
45 lines
967 B
TypeScript
45 lines
967 B
TypeScript
interface Env {
|
|
DB: D1Database
|
|
}
|
|
|
|
const CLEANUP_CONFIG = {
|
|
// Whether to delete expired emails
|
|
DELETE_EXPIRED_EMAILS: true,
|
|
|
|
// Batch processing size
|
|
BATCH_SIZE: 100,
|
|
} as const
|
|
|
|
const main = {
|
|
async scheduled(_: ScheduledEvent, env: Env) {
|
|
const now = Date.now()
|
|
|
|
try {
|
|
if (!CLEANUP_CONFIG.DELETE_EXPIRED_EMAILS) {
|
|
console.log('Expired email deletion is disabled')
|
|
return
|
|
}
|
|
|
|
const result = await env.DB
|
|
.prepare(`
|
|
DELETE FROM email
|
|
WHERE expires_at < ?
|
|
LIMIT ?
|
|
`)
|
|
.bind(now, CLEANUP_CONFIG.BATCH_SIZE)
|
|
.run()
|
|
|
|
if (result.success) {
|
|
console.log(`Deleted ${result?.meta?.changes ?? 0} expired emails and their associated messages`)
|
|
} else {
|
|
console.error('Failed to delete expired emails')
|
|
}
|
|
} catch (error) {
|
|
console.error('Failed to cleanup:', error)
|
|
throw error
|
|
}
|
|
}
|
|
}
|
|
|
|
export default main
|