首页
下载
文档
社区
视频
捐赠
开源项目
typephp
swoole
code-galaxy
swoole-cli
phpx
phpy
赞助商
AOT 编译器
AI 助理
商业产品
Swoole-Compiler 代码加密器
CRMEB 新零售社交电商系统
新加坡独享 Mac mini AI 工作站
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
TypePHP
CodeGalaxy
发表新帖
请问协程风格的HttpServer如何实现守护进程?
请问协程风格的HttpServer如何实现守护进程? 我的想法是 在外 加一层 Swoole\Process 然后调用 deamon 不知道对不对,望赐教 谢谢! ```php $process = new Process(function () { \Co\run(function () { $server = new \Swoole\Coroutine\Http\Server("127.0.0.1", 10086, false, true); $server->handle('/', function ($request, $response) { $response->end("<p>Hello Wrold</p>"); }); $server->start(); }); }); $process->start(); $process::daemon(); ```
发布于6年前 · 9 次浏览 · 来自
提问
qzzm
请问协程风格的HttpServer如何实现守护进程? 我的想法是 在外 加一层 Swoole\Process 然后调用 deamon 不知道对不对,望赐教 谢谢! ```php $process = new Process(function () { \Co\run(function () { $server = new \Swoole\Coroutine\Http\Server("127.0.0.1", 10086, false, true); $server->handle('/', function ($request, $response) { $response->end("<p>Hello Wrold</p>"); }); $server->start(); }); }); $process->start(); $process::daemon(); ```
赞
0
收藏
提问
分享
讨论
建议
公告
开发框架
TypePHP
CodeGalaxy
登录
后参与评论
评论
2020-04-02
郭新华
首先推荐用Process\pool模块,带进程管理功能 你应该在最开始调用daemon方法,daemon方法会fork个进程 然后把fork的进程守护进程化 ```php Swoole\Process::daemon(); //多进程管理模块 $pool = new Swoole\Process\Pool(2); //让每个OnWorkerStart回调都自动创建一个协程 $pool->set(['enable_coroutine' => true]); $pool->on("workerStart", function ($pool, $id) { //每个进程都监听9501端口 $server = new Swoole\Coroutine\Server('127.0.0.1', '9501' , false, true); //收到15信号关闭服务 Swoole\Process::signal(SIGTERM, function () use ($server) { $server->shutdown(); }); //接收到新的连接请求 $server->handle(function (Swoole\Coroutine\Server\Connection $conn) { //接收数据 $data = $conn->recv(); if (empty($data)) { //关闭连接 $conn->close(); } //发送数据 $conn->send("hello"); }); //开始监听端口 $server->start(); }); $pool->start(); ```
赞
2
回复
2020-04-02
qzzm
回复
郭新华
谢谢 郭大大指点 : )
赞
0
回复
2020-07-05
jockyLi
协程那块的文档中可以加这个说明吧,协程服务中好多地方感觉无从下手...
赞
0
回复