首页
下载
文档
社区
视频
捐赠
源代码
赞助商
AOT 编译器
AI 助理
商业产品
PHP AOT 原生编译器
Swoole-Compiler 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
HTTP服务器出发热更新,看到工作进程的worker_id也变了,但重新请求response的结果不更新
### 问题描述 ### Swoole版本4.85,PHP版本8.1,以及操作系统版本信息centos ### 相关代码 ```php $server->on('Request', function ($request, $response) use ($server) { print_r([ 'master_pid' => $server->master_pid, 'manager_pid' => $server->manager_pid, 'worker_id' => $server->worker_id, 'worker_pid' => $server->worker_pid, ]); if ($request->server['path_info'] == '/favicon.ico' || $request->server['request_uri'] == '/favicon.ico') { $response->end(); return; } $endData = [ 'name' => '12345' ]; $response->end(json_encode($endData, JSON_UNESCAPED_SLASHES + JSON_UNESCAPED_UNICODE)); }); ``` ### 你期待的结果是什么?实际看到的错误信息又是什么? HTTP服务器出发热更新,看到工作进程的worker_id也变了,但重新请求response的结果就是不会变,貌似Request事件中的代码没有更新,请问是怎么回事?
发布于4年前 · 13 次浏览 · 来自
提问
amle
### 问题描述 ### Swoole版本4.85,PHP版本8.1,以及操作系统版本信息centos ### 相关代码 ```php $server->on('Request', function ($request, $response) use ($server) { print_r([ 'master_pid' => $server->master_pid, 'manager_pid' => $server->manager_pid, 'worker_id' => $server->worker_id, 'worker_pid' => $server->worker_pid, ]); if ($request->server['path_info'] == '/favicon.ico' || $request->server['request_uri'] == '/favicon.ico') { $response->end(); return; } $endData = [ 'name' => '12345' ]; $response->end(json_encode($endData, JSON_UNESCAPED_SLASHES + JSON_UNESCAPED_UNICODE)); }); ``` ### 你期待的结果是什么?实际看到的错误信息又是什么? HTTP服务器出发热更新,看到工作进程的worker_id也变了,但重新请求response的结果就是不会变,貌似Request事件中的代码没有更新,请问是怎么回事?
赞
0
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
登录
后参与评论
评论
2022-05-19
Rango
因为 `onRequest` 代码在主进程启动时就加载了,所以无法重新载入,建议将这部分代码放到单独的`php`文件中,然后在`onWorkerStart`中`include`,这样就可以重载入了。
赞
1
回复
2022-05-20
amle
清楚了谢谢
赞
1
回复