首页
下载
文档
社区
视频
捐赠
源代码
赞助商
AOT 编译器
AI 助理
商业产品
PHP AOT 原生编译器
Swoole-Compiler 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
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
收藏
提问
分享
讨论
建议
公告
开发框架
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
回复