import { Cron } from "https://deno.land/x/croner@7.0.0/dist/croner.js" import debug from "debug" const log = debug('service:user-expiry-check') interface UserExpiryCheckConfig { cronSchedule: string endpoint: string } const defaultConfig: UserExpiryCheckConfig = { cronSchedule: '0 0 * * *', // 每天凌晨执行 endpoint: '/api/users/check-expired' } export function initUserExpiryCheck(config: Partial = {}) { const finalConfig = { ...defaultConfig, ...config } try { new Cron(finalConfig.cronSchedule, async () => { log('开始执行学员有效期检查任务') try { const response = await fetch(finalConfig.endpoint) const data = await response.json() log('学员有效期检查完成,结果: %o', data) } catch (error) { log('调用检查接口失败: %o', error) } }) log('学员有效期定时检查服务已启动') } catch (error) { log('定时任务初始化失败: %o', error) throw error } }