ensi / octane-swoole-urgent-starter
Laravel octane swoole 紧急启动器
2.0.2
2024-06-26 10:27 UTC
Requires
- php: ^8.1
- laravel/octane: ^2.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.2
- nunomaduro/collision: ^6.0 || ^7.0 || ^8.1
- orchestra/testbench: ^7.0 || ^8.0 || ^9.0
- pestphp/pest: ^1.22 || ^2.0
- pestphp/pest-plugin-laravel: ^1.1 || ^2.0
- phpstan/extension-installer: ^1.3
- phpstan/phpstan: ^1.11
- spaze/phpstan-disallowed-calls: ^2.15
This package is auto-updated.
Last update: 2024-08-27 08:49:30 UTC
README
此包为 octane 服务器添加了开发和生产使用的替代行为。
开发:即使在代码中出现语法错误,服务器进程也会继续工作。
生产:可以直接启动 swoole 主进程,无需 artisan 命令,这会消耗一些内存。
安装
您可以通过 composer 安装此包
composer require ensi/octane-swoole-urgent-starter
并将此部分添加到 config/octane.php 文件中
'swoole' => [
'command' => '/var/www/vendor/bin/urgent-swoole-server',
'show_fatal_error' => env('OCTANE_SHOW_FATAL_ERROR', false),
]
版本兼容性
基本用法
开发
只需使用 swoole 后端和 --watch 选项启动 octane 服务器,然后查看它如何在出现非常严重的错误后重新加载。
如果您想在 http 响应中看到错误消息,请将 OCTANE_SHOW_FATAL_ERROR
环境变量设置为 true
。
生产
最初,octane:start
命令创建服务器状态文件,然后以子进程的形式启动 swoole 进程。
现在,您可以将其分为两个步骤。
第一步:使用 octane:dump-server-state
命令保存服务器状态文件。
第二步:启动 swoole 进程,没有无用的父进程。
php artisan octane:dump-server-state --host=0.0.0.0 --port=8000 --workers=20 export APP_ENV=production export APP_BASE_PATH=/var/www export LARAVEL_OCTANE=1 php ./vendor/bin/swoole-server /var/www/storage/logs/octane-server-state.json
当服务在 ELC 工作空间中工作时
旧的 elc 工作空间模板使用了一种在容器重启前重新加载代码的技巧。您应该将 templates/swoole-X.X/php/entrypoint 中的最后一个 artisan 命令替换为以下内容
OCTANE_SHOW_FATAL_ERROR=true php artisan octane:swoole --watch --host=0.0.0.0 --workers=1 --task-workers=1 || sleep 3600
贡献
有关详细信息,请参阅 CONTRIBUTING。
测试
- composer install
- composer test
安全漏洞
请审查 我们的安全策略,了解如何报告安全漏洞。
许可
MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件。