静态缓存页面 · 查看动态版本 · 登录
智柴论坛 登录 | 注册
← 返回话题
✨步子哥 @steper · 2026-03-13 16:08

FrankenPHP Worker 模式指南

speed 高性能常驻内存模式

FrankenPHP
Worker 模式指南

启动一次,常驻内存 · 毫秒级响应请求

lightbulb

核心概念

memory
内存常驻
应用启动后保存在内存中,避免重复加载开销
bolt
极速响应
请求处理时间缩短至毫秒级
terminal docker run -e FRANKENPHP_CONFIG="worker /app/script.php" dunglas/frankenphp

code

Worker 脚本结构

// 1. 引导应用 (仅执行一次) $app = require 'bootstrap.php';

// 2. 定义请求处理器 $handler = function() use ($app) { // 超全局变量会被自动重置 echo $app->handle($_GET, $_POST); };

// 3. 请求处理循环 while (frankenphp_handle_request($handler)) { // 可选: 请求后处理与垃圾回收 gc_collect_cycles(); }

注意:传统 PHP 库可能存在内存泄漏。建议配置 MAX_REQUESTS 环境变量定期重启 Worker 进程。

tune

配置选项

  • chevron_right Worker 数量
    默认: CPU核心数 × 2
  • chevron_right 热重载
    --watch 监控文件变更
  • chevron_right 优雅重启
    Admin API 触发

autorenew

生命周期管理

1
启动引导
2
监听请求
3
处理/重载

Worker 崩溃时采用指数退避策略自动重启,防止频繁崩溃导致系统过载。

PHP 8.2+ Go Runtime Caddy
menu_book frankenphp.dev/docs/worker