参考资料

  1. 占用 8000 的正是你之前启动的 octane 进程
  2. 说明日志系统在记录 Guzzle 废弃警告时崩溃了,掩盖了真正的问题
  3. Fresns 的 Swoole 配置
  4. Nginx 无法连接到 Octane 监听的端口
  5. 端口还是被占用,但 PID 变了(从 244xx 变成了 261xx)。
  6. Trying to access array offset on null 是 PHP 8.0+ 的警告
  7. 针对 Fresns 的 PHP-FPM 调优
  8. Fresns 的队列配置核心是在 .env 文件中将 QUEUE_CONNECTION

Fresns 的队列配置核心是在 .env 文件中将 QUEUE_CONNECTION

Fresns 的队列配置核心是在 .env 文件中将 QUEUE_CONNECTION 从默认的 sync 改为 redis,并为 queue:work 进程配置守护。

1. 修改 .env 配置

编辑 Fresns 根目录下的 .env 文件,将队列驱动改为 Redis(需先确保 Redis 服务已启动):

QUEUE_CONNECTION=redis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
REDIS_QUEUE=fresns

2. 清理配置缓存

修改完成后,务必清理 Laravel 的配置缓存,否则改动不会生效:

php artisan config:clear

3. 启动队列进程

使用 queue:work 命令启动消费者进程,用于处理后台任务:

php artisan queue:work --sleep=3 --tries=3

4. 配置 Supervisor 守护

队列进程需要常驻运行,在宝塔面板的 Supervisor 管理器中添加进程来守护它:

  • 启动命令:php /www/wwwroot/www.madama.cn/fresns/artisan queue:work --sleep=3 --tries=3

  • 运行目录:/www/wwwroot/www.madama.cn/fresns

  • 进程数量:建议设置为 1 或 2,也可根据负载调整。

提示:默认的 sync 驱动是同步执行,任务会立即完成,不会进入队列。改为 redis 后,Fresns 的异步任务(如通知发送、数据统计)才会在后台运行。

作者:王壹杰
时间:2026-10-02 09:56:33
来源:https://fresns.ciilii.com/