第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

SWOOLE 從入門到放棄之寫個(gè)小框架(二十二)

標(biāo)簽:
PHP

补充一点关于服务进制监控的内容。

小伙伴们过去的项目中可能有这么一个需求,有些在线业务必须保证它一直在线,一般的操作就是利用Crontab来搞一个定时任务,有能力的同学可能还会用Python或Shell来写一个后台任务来循环操作,还有一些同学可会会直接用Supervisor。能实现它的手段有很多。

相比较之下,我还是建议小伙伴们用我们更熟悉的PHP来实现它。还是在我们的小框架基础上来实现它。

首先,我们的小框架它是完全可以脱离NGINX来提供HTTP服务的,但在运行的过程它就有可能在这样的问题,比如因为某些原因或错误导致swoole_http服务下线。而服务一旦停用或下线,就会严重影响在线用户的使用体验。老板也会发飙。。

SWOOLE 从入门到放弃之写个小框架(二十) 中,我们把base.php做了一个完善,然后又在启动文件start.php中写了启动调用入口。现阶段的base.php支持 start 启动、stop 停止、kill 杀死进程、restart重启和reload重载五个操作参数。

这就为了们今天要补充的监控工作提供了一个很好基础。接下来我们就开始写监控程序。我准备用 swoole_timer_tick来实现我们的监控工作。关于 swoole_timer_tick的说明请移步https://wiki.swoole.com/wiki/page/412.html。

接下来,我们要给它一些配置信息,比如轮循时间,发现下线后,是否重启任务等等。修改config/app.php,增加以下内容

//监控配置
    'monitor'   =>  [
        'timer'     =>  3000 ,  //间隔3秒,单位毫秒
        'restart'   => 1 ,       //是否重启,1是,0否
    ] ,

以上配置信息只是简单的配置,小伙伴们可以自行增加新的内容。

我们要怎么判断http服务是否在线呢?还记得config/app.php里有一个port配置吗,对,就是我们监听的端口,我们用netstat命令来查看它是否在线。


root@localhost:/piz$ netstat -anp | grep 9501
tcp        0      0 0.0.0.0:9501            0.0.0.0:*               LISTEN      8825/server-master  

可以看到,9501端口已经被监听,也就是说我们的框架正在运行。也证明我们用netstat命令它是可行的,接下来我们改一下它。

root@localhost:/piz$ netstat -anp | grep 9501 | grep LISTEN | wc -l
1

这样就能统计出进程数。接下来创建/monitor.php ,代码如下

#!/usr/bin/env php
<?php
require_once "./frame/base.php";

swoole_timer_tick(\Piz\Config::get_instance ()->get('app.monitor.timer'),function ($timer_id){
    $port = \Piz\Config::get_instance ()->get('app.port');
    $restart = \Piz\Config::get_instance ()->get('app.monitor.restart');
    $sh = "netstat -anp 2>/dev/null | grep {$port} | grep LISTEN | wc -l  ";
    $res = intval(shell_exec($sh));
    if(empty($res)){
        echo date('Y-m-d H:i:s'),"\t","服务下线",PHP_EOL;
        if($restart){
            echo shell_exec('php start.php start');
        }
    }
});

php monitor.php试运行一下,然后新开一个窗口把框架进程停掉,看下效果

1
root@localhost:/piz$ php monitor.php 
2018-04-18 15:52:47     服务下线
server 启动成功

OK,成功了。

點(diǎn)擊查看更多內(nèi)容
1人點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消