| 12345678910111213141516171819202122232425262728293031323334353637 |
- 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<UserExpiryCheckConfig> = {}) {
- 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
- }
- }
|