Adonis Scheduler 使用教程
项目介绍
Adonis Scheduler 是一个用于 AdonisJS 框架的定时任务管理工具。它允许开发者轻松地管理 cron 任务,支持多种任务调度频率,并且可以执行 Ace 命令和系统命令。
项目快速启动
安装
首先,通过 npm 或 yarn 安装 Adonis Scheduler:
npm install @verful/scheduler
# 或者
yarn add @verful/scheduler
配置
安装完成后,运行以下命令进行配置:
node ace configure @verful/scheduler
定义定时任务
在 start/tasks.ts
文件中定义你的定时任务。以下是一个示例,每天午夜清除 recent_users
表:
import Scheduler from '@ioc:Verful/Scheduler'
import Database from '@ioc:Adonis/Lucid/Database'
Scheduler.call(async () => {
await Database.from('recent_users').delete()
}).daily()
应用案例和最佳实践
定时发送邮件
假设你需要每天早上 8 点发送邮件,可以使用以下代码:
import Scheduler from '@ioc:Verful/Scheduler'
import Mail from '@ioc:Adonis/Addons/Mail'
Scheduler.call(async () => {
await Mail.send((message) => {
message
.to('example@example.com')
.subject('Daily Digest')
.htmlView('emails/daily_digest')
})
}).dailyAt('08:00')
定时清理日志文件
你可以定时清理过期的日志文件:
import Scheduler from '@ioc:Verful/Scheduler'
import fs from 'fs'
Scheduler.call(async () => {
const logsDir = 'path/to/logs'
fs.readdir(logsDir, (err, files) => {
if (err) throw err
files.forEach((file) => {
fs.unlink(`${logsDir}/${file}`, (err) => {
if (err) throw err
})
})
})
}).weekly()
典型生态项目
Adonis Scheduler 可以与其他 AdonisJS 生态项目结合使用,例如:
- Adonis Mail: 用于发送邮件。
- Adonis Lucid: 用于数据库操作。
- Adonis Redis: 用于缓存和消息队列。
通过这些项目的结合,你可以构建一个功能强大的定时任务系统,满足各种复杂的需求。