定时任务配置
配置定时任务来发送邮件和更新发布状态
概述
在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请求。例如: