参考资料

  1. Fresns 核心安装要求汇总
  2. Fresns 的队列,它的核心是按需配置,并非安装必选项
  3. Fresns 提供两种自动升级方式,升级前务必先备份数据库
  4. Fresns 的 PHP 扩展要求分为 必选 和 按需安装 两类
  5. Composer 换国内源是提升依赖下载速度最直接的方法
  6. Fresns 终端平台编号
  7. Fresns 对 PHP 超时限制有明确要求,主要是为了避免插件依赖下载超时
  8. Fresns 配合 Octane 和 FrankenPHP,是目前社区公认提升访问速度最核心的手段

Fresns 的定时任务基于 Laravel 的 Task Scheduler 机制

Fresns 的定时任务基于 Laravel 的 Task Scheduler 机制。核心逻辑是:在服务器上配置一个每分钟执行一次的 cron,由它触发 Laravel 的调度器,调度器再根据定义好的周期去执行具体任务。

📂 宝塔面板配置步骤

  1. 进入计划任务:宝塔面板 → 计划任务 → 添加任务。

  2. 任务类型:选择 Shell 脚本。

  3. 执行周期:选择 N 分钟,并设置为 1 分钟。

  4. 脚本内容:复制以下命令,注意替换你的项目路径:

su -c "cd /www/wwwroot/fresns && php artisan schedule:run >> /dev/null 2>&1" -s /bin/sh www

示例(官方推荐):

su -c "cd /www/wwwroot/fresns && php artisan schedule:run >> /dev/null 2>&1" -s /bin/sh www
  • /www/wwwroot/fresns:替换为你的 Fresns 实际安装目录。

  • www:替换为你的网站运行用户(通常是 www)。

配置完成后,点击“执行”测试一下,如果没报错就说明脚本本身可以运行。

⚙️ 调度机制说明

Laravel 的调度器是一个“入口”,它每分钟被触发一次,然后检查“现在有没有到点该执行的任务”。具体任务的定义(比如“每 10 分钟检查一次角色过期”)由 Fresns 主程序在内部管理,它会遍历数据库中 crontab_items 表里的条目,根据 cronTableFormat 字段来判断是否该执行。

💡 注意事项

  • PHP 版本兼容性:有用户反馈在 PHP 8.4 环境下,定时任务可能会导致 500 错误,如果遇到此类问题,可以尝试切换到 PHP 8.3 或更低版本进行排查。

  • 权限问题:如果脚本执行失败,检查一下命令中的用户(如 www)是否有权限读取项目目录和执行 PHP。

作者:王壹杰
时间:2026-10-01 16:59:03
来源:https://fresns.ciilii.com/