定时任务配置
配置定时任务来发送邮件和更新发布状态
概述
在DirEasy中,有三种定时任务:
update-launches.ts
- 频道初始状态为
SCHEDULED
,带有计划的发布日期 - 在发布日UTC时间8:00,状态变为
ONGOING
- 在第二天UTC时间8:00,状态变为
LAUNCHED
- 计算昨天发布的3个最受欢迎项目
send-ongoing-reminders.ts
- 在发布日UTC时间8:30,向用户发送关于他们正在进行的发布的提醒邮件
send-winner-notifications.ts
- 在发布日UTC时间9:00,向当天的获胜者发送邮件通知
- 无论您运营什么类型的目录网站,
update-launches.ts
都是必需的(除非您想直接在数据库中手动审核和更新状态),而send-ongoing-reminders.ts
和send-winner-notifications.ts
对于类似Product Hunter的目录网站是必需的 调度时间
是可配置的,您可以根据需要修改,我们将在下面介绍
配置指南
设置环境变量
在.env
文件中添加以下环境变量:
添加定时任务到任务提供商平台
推荐使用FastCron按计划触发定时任务。但您也可以选择其他后台任务服务,如Vercel或cron-job。
FastCron
FastCron免费版支持5个定时任务,并支持重试。推荐使用。
创建FastCron账户并添加三个定时任务,至少设置:
调用的URL
https://your-website.com/api/cron/update-launches
、https://your-website.com/api/cron/send-ongoing-reminders
、https://your-website.com/api/cron/send-winner-notifications
调用时间
设置调度时间
请记住将 'timezone' 设置为 'UTC'。当然,您可以根据需要对其进行修改。
发送Http请求
字段:
设置为Authorization: Bearer {CRON_API_KEY}
,将{CRON_API_KEY}
替换为您的值
Cron-job
与FastCron类似,但不支持重试
Vercel定时任务
Vercel定时任务免费版仅支持2个定时任务,且不支持重试
- 调度功能
您可以通过修改代码库根目录下的vercel.json
文件来调度任务:
- Vercel如何触发定时任务
Vercel会向您项目的生产部署URL发送HTTP GET请求,使用vercel.json文件中提供的路径。例如,Vercel可能会请求:
- 手动触发功能
如需手动触发定时任务,您可以在Vercel仪表板中操作,或直接向端点发送标准HTTP请求。例如: