LogoMkSaaS文档
LogoMkSaaS文档
首页模板介绍代码库视频教程入门文档环境配置
网站配置

功能集成

数据库身份验证邮件邮件订阅存储支付积分定时任务AI 功能统计分析通知验证码聊天框联盟营销

自定义

元数据字体主题图片国际化博客文档组件页面落地页用户管理密钥管理

代码库

IDE 设置项目结构格式化和代码检查更新代码库
X (Twitter)

定时任务

了解如何在 MkSaaS 中设置和使用定时任务

MkSaaS 需要每天执行一次定时任务来发放用户积分并处理积分过期。你可以通过 GitHub Actions(推荐)或 cron-job.org 等外部服务来完成配置。

如果您开启了积分系统,那么您需要设置定时任务来发放积分给用户,以及处理用户的积分过期。

积分

了解更多关于积分的信息

方式一:GitHub Actions(推荐)

GitHub Actions 直接在 CI 环境中运行 pnpm run distribute-credits 脚本,不存在 HTTP 请求超时的问题,也无需依赖外部服务。

模板中已包含工作流文件 .github/workflows/distribute-credits.yml,默认每天 UTC 00:10 执行,同时支持通过 workflow_dispatch 手动触发。

确认工作流文件

确保仓库中存在 .github/workflows/distribute-credits.yml。如果你是从模板克隆的项目,该文件应已包含在内。工作流内容如下:

.github/workflows/distribute-credits.yml
name: Distribute Credits
on:
  schedule:
    - cron: '10 0 * * *'
  workflow_dispatch:
jobs:
  distribute:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Install pnpm
        uses: pnpm/action-setup@v4
      - name: Setup Node
        uses: actions/setup-node@v4
        with:
          node-version: '20'
          cache: 'pnpm'
      - name: Install dependencies
        run: pnpm install --frozen-lockfile
      - name: Run credit distribution
        env:
          DATABASE_URL: ${{ secrets.DATABASE_URL }}
          DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }}
          FEISHU_WEBHOOK_URL: ${{ secrets.FEISHU_WEBHOOK_URL }}
        run: pnpm run distribute-credits

添加 GitHub Secrets

进入 GitHub 仓库 > Settings > Secrets and variables > Actions,添加以下密钥:

Secret是否必填说明
DATABASE_URL是PostgreSQL 数据库连接字符串
DISCORD_WEBHOOK_URL否用于发放通知的 Discord Webhook 地址
FEISHU_WEBHOOK_URL否用于发放通知的飞书 Webhook 地址

推送并验证

将工作流文件推送到仓库的默认分支,然后进入 Actions 标签页确认工作流已出现。

如需立即测试,选择 "Distribute Credits" 工作流,点击 Run workflow 手动触发。执行日志和状态可在同一页面查看。

方式二:cron-job.org(备选方案)

cron-job.org 是一个免费的外部定时任务调度器,通过 HTTP 请求触发积分发放 API。

创建账户

在 cron-job.org 注册一个账户。

创建定时任务

进入 Cron Job Dashboard > Cronjobs,点击 CREATE CRONJOB。

配置基本设置

在 Cron Job Common 部分设置 Title 和 URL,将 Execution schedule 设为每天执行一次,时间自选(如 00:00)。URL 格式为:

https://{YOUR-DOMAIN}/api/distribute-credits

Create Cron Job

配置高级设置

在 Cron Job Advance 部分设置 Username 和 Password,并将 Timeout 设为 30 秒。

这里的用户名和密码不是 cron-job.org 的账号密码,而是用于访问 API 的 Basic Auth 凭证,请妥善保管。

Cron Job Advance

设置环境变量

将上面配置的认证凭证添加到环境变量文件中:

.env
CRON_JOBS_USERNAME=YOUR-USERNAME
CRON_JOBS_PASSWORD=YOUR-PASSWORD

创建后可在定时任务页面点击 TEST RUN 进行测试,在 Response 标签中查看返回结果。执行历史也可在该页面查看。

Test Cron Job

如果您正在设置环境,现在可以回到环境配置文档并继续。本文档的其余部分可以稍后阅读。

环境配置

设置环境变量


文件结构

distribute-credits.yml
route.ts
  • .github/workflows/distribute-credits.yml — GitHub Actions 定时积分发放工作流(方式一)
  • src/app/api/distribute-credits/route.ts — HTTP 方式的积分发放 API 路由(方式二,供 cron-job.org 调用)

参考资料

  • GitHub Actions - 计划事件
  • cron-job.org

后续操作

定时任务配置完成后,你可以继续配置以下相关服务:

支付服务

配置支付服务

用户认证

配置用户认证

分析统计

配置分析统计

存储服务

配置存储服务

积分

如何在 MkSaaS 中设置和使用积分系统

AI 功能

学习如何设置和使用 AI 功能

目录

方式一:GitHub Actions(推荐)
确认工作流文件
添加 GitHub Secrets
推送并验证
方式二:cron-job.org(备选方案)
创建账户
创建定时任务
配置基本设置
配置高级设置
设置环境变量
文件结构
参考资料
后续操作