你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:技术专栏 / Web开发
平滑重启使PHP文件有效测试
 

在 Swoole 文档中有这么一说明

" 平滑重启只对onWorkerStart或onReceive等在Worker进程中include/require的PHP文件有效,Server启动前就已经include/require的PHP文件,不能通过平滑重启重新加载 "

让我们来测试一下:

# php http_server.php

WorkerStart 

WorkerStart 

访问  https://www.test-yy.com

页面内容输出 " hello Swoole test "

命令行中输出:

Test1

request 100Test1

当我们将

test.php

test_request.php

代码中的 Test1 替换成 Test2 时

访问  https://www.test-yy.com

命令行中输出:

Test1

request 88Test2

# ps -ef | grep php

# kill -USR1 8155        // 平滑重启,8155(主进程/管理进程 id)

再次访问  https://www.test-yy.com

命令行中输出:

Test1

request 88Test2

以上结果说明了 include/require ,再 Server 启动前载入的PHP文件,不能通过平滑重启重新加载

测试代码:

http_server.php

<?php

echo 'shell start';

define('__ROOT__', realpath('.'));

include __ROOT__.'/test.php';

$http = new swoole_http_server("127.0.0.1", 9501);

$http->set([

    'worker_num'=>2,

    'max_request'=>50

]);

$http->on('WorkerStart', function ($serv, $worker_id){

    echo "WorkerStart \n";

});

$http->on('request', function ($request, $response) {

    getTest();

    include __ROOT__.'/test_request.php';

    $response->header("Content-Type", "text/html; charset=utf-8");

    $response->end(getTplContent());

});

$http->start();

function getTplContent() {

    return "hello Swoole test \n";

}

?>

test.php

<?php

function getTest() {

    echo "Test1 \n";

}

?>

test_request.php

<?php

echo 'request '.rand(1,100)."Test1 \n";

?>

nginx 配置

test.conf

server {

listen      80;

server_name www.test-yy.com;

...

location ~\.php$ {

                proxy_http_version 1.1;

                proxy_set_header Connection "keep-alive";

                proxy_set_header X-Real-IP $remote_addr;

                proxy_pass https://127.0.0.1:9501;

        }

}

  推荐精品文章

·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录
·2023年10月目录
·2023年9月目录 
·2023年8月目录 
·2023年7月目录
·2023年6月目录 
·2023年5月目录
·2023年4月目录 
·2023年3月目录 
·2023年2月目录 
·2023年1月目录 

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089