roadrunner中文文档(二)PHP Workers
2021/6/8 14:22:06
本文主要是介绍roadrunner中文文档(二)PHP Workers,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
2021年6月8日12:51:06
Workers
为了运行您的 PHP 应用程序,您必须创建一个工作端点并配置 RoadRunner 以使用它。首先,使用Composer安装所需的包。
composer require spiral/roadrunner nyholm/psr7
使用 PSR-7 服务器 API 的最简单入口点可能如下所示:
<?php use Spiral\RoadRunner; use Nyholm\Psr7; include "vendor/autoload.php"; $worker = RoadRunner\Worker::create(); $psrFactory = new Psr7\Factory\Psr17Factory(); $worker = new RoadRunner\Http\PSR7Worker($worker, $psrFactory, $psrFactory, $psrFactory); while ($req = $worker->waitRequest()) { try { $rsp = new Psr7\Response(); $rsp->getBody()->write('Hello world!'); $worker->respond($rsp); } catch (\Throwable $e) { $worker->getWorker()->error((string)$e); } }
这样Workers将期望通过标准管道与父 RoadRunner 服务器进行通信,创建.rr.yaml
配置以启用它:
server: command: "php psr-worker.php" http: address: 0.0.0.0:8080 pool: num_workers: 4
如果您不喜欢yaml
尝试.rr.json
:
{ "server": { "command": "path-to-php/php psr-worker.php" }, "http": { "address": "0.0.0.0:8080", "pool": { "num_workers": 4 } } }
您现在可以通过下载 RR 二进制文件并运行来启动应用程序 rr serve
替代沟通方式
PHP Workers 将利用标准管道 STDOUT 和 STDERR 与 RR 服务器交换数据帧。在某些情况下,您可能希望使用替代通信方法,例如 TCP 套接字:
server: command: "php psr-worker.php" relay: "tcp://localhost:7000" http: address: 0.0.0.0:8080 pool: num_workers: 4
Unix 套接字:
server: command: "php psr-worker.php" relay: "unix://rr.sock" http: address: 0.0.0.0:8080 pool: num_workers: 4
故障排除
在某些情况下,RR 将无法处理 PHP worker 产生的错误(PHP 丢失、脚本死机等)。
$ rr serve DEBU[0003] [rpc]: started DEBU[0003] [http]: started ERRO[0003] [http]: unable to connect to worker: unexpected response, header is missing: exit status 1 DEBU[0003] [rpc]: stopped
您可以通过手动调用command
set in .rr
file来解决它:
$ php psr-worker.php
在提供任何输入之前,工作人员不应导致任何错误,并且必须在第一个输入字符后以无效输入签名失败。
其他类型的Workers
不同的roadrunner 实现可能会定义自己的worker API,例如:GRPC、Workflow/Activity Worker。
环境配置
所有 RoadRunner 工作人员都将继承可用于父服务器进程的系统配置。此外,你可以自定义设置ENV变量传递到使用部分你的工人env
的.rr
配置文件。
server: command: "php worker.php" env: key: value
所有键都将自动大写!
默认 ENV 值
RoadRunner 提供了一组 ENV 值来帮助 PHP 进程识别如何与服务器正确通信。
钥匙 | 描述 |
---|---|
RR_MODE | 确定工作模式应该使用的模式(“http”,“temporal”) |
RR_RPC | 启用时包含 RPC 连接地址。 |
RR_RELAY | “管道”或“tcp://...”,取决于服务器中继配置。 |
11111
这篇关于roadrunner中文文档(二)PHP Workers的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-19php8的协程和hyperf的协程有什么区别?-icode9专业技术文章分享
- 2024-12-19php8 的fiber是什么?-icode9专业技术文章分享
- 2024-12-05怎么在php8,1 里面开启 debug?-icode9专业技术文章分享
- 2024-12-05怎么在php8,1 里面开启 debug?-icode9专业技术文章分享
- 2024-11-29使用PHP 将ETH账户的资产汇集到一个账户
- 2024-11-23怎么实现安卓+php 热更新方案?-icode9专业技术文章分享
- 2024-11-22PHP 中怎么实现判断多个值是否为空、null 或者为 false?-icode9专业技术文章分享
- 2024-11-11开源 PHP 商城项目 CRMEB 二次开发和部署教程
- 2024-11-09怎么使用php在kaufland平台刊登商品?-icode9专业技术文章分享
- 2024-11-05PHP的抽象类和接口是什么,有什么区别-icode9专业技术文章分享