国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Asf PHP擴(kuò)展框架之預(yù)警模塊介紹

Labradors / 642人閱讀

摘要:一什么是預(yù)警預(yù)警可以理解成我們?nèi)粘I钪械捏w檢,每個(gè)人不管是富貴,還是貧窮,有一個(gè)健康的身體才是事業(yè)和生活的基礎(chǔ)。

一、什么是預(yù)警?

預(yù)警可以理解成我們?nèi)粘I钪械捏w檢,每個(gè)人不管是富貴,還是貧窮,有一個(gè)健康的身體才是事業(yè)和生活的基礎(chǔ)。

項(xiàng)目的健康我們形象比喻成“1”,項(xiàng)目的N多子功能/子模塊,比如登錄模塊、注冊(cè)模塊等都是“1”后面的“0”,如果項(xiàng)目都出問題了(比如 Http Status Code 502, 頁面或者接口響應(yīng)慢),相當(dāng)于前面的“1”已經(jīng)不存在了,即使后面再多的“0”也沒有任何意義。

二、預(yù)警能起到什么作用?

從醫(yī)學(xué)的名詞來表述,包括了三個(gè)方面:

治未病

早發(fā)現(xiàn),早治療

確診了,馬上治療

三、Asf 預(yù)警解決方案

關(guān)于 Asf 框架的入門教程,請(qǐng)看這里 >>> Get Start
關(guān)于 Asf 框架支持的配置項(xiàng)及配置詳情,請(qǐng)看這里 >>> Get Start

Asf PHP擴(kuò)展框架已經(jīng)內(nèi)置了一套預(yù)警機(jī)制,預(yù)警范圍包括了兩個(gè)方面,每一個(gè)方面又包括兩種不同的預(yù)警處理方法。

PHP腳本執(zhí)行異常預(yù)警

Fatal Error Warning Notice Strict Deprecated Unknown Error
E_PARSE E_WARNING E_NOTICE E_STRICT E_DEPRECATED E_OTHERS
E_ERROR E_USER_WARNING E_USER_NOTICE - - -
E_CORE_ERROR E_CORE_WARNING - - - -
E_COMPILE_ERROR E_COMPILE_WARNING - - - -
E_USER_ERROR E_RECOVERABLE_ERROR - - - -

PHP腳本執(zhí)行時(shí)間耗時(shí)預(yù)警 (非CLI模式下)

配置項(xiàng) 類型 默認(rèn)值 (秒) 含義
asf.dispathcer.timeout.max_script_time double 1.0 腳本超時(shí)預(yù)警
asf.dispathcer.timeout.max_db_time double 0.1 SQL超時(shí)預(yù)警
asf.dispathcer.timeout.max_cache_time double 0.1 NoSQL超時(shí)預(yù)警
asf.dispathcer.timeout.max_curl_time double 0.1 CURL超時(shí)預(yù)警

四、本地日志記錄方案 Demo

本地日志記錄方案,支持 Log Buffer,性能指標(biāo)請(qǐng)看這里 >>> Get Start

4.1 PHP腳本執(zhí)行異常預(yù)警

日志格式規(guī)范請(qǐng)參考這里 >>> Get Start

[dongshuang@box3 /data/www/box3.cn/public]$ cat index.php
 array(
        "root_path" => dirname(__DIR__) . "/apps",
        "log_path" => "/data/logs", /* 日志保存目錄,寫入權(quán)限 */
        "dispatcher" => [
            "log" => ["err" => 1] /* 開啟 */
        ] 
    )
);

$app = new App($configs);
$app->run();
4.1.1 /data/logs/Asf_Err_Log 樣本
[dongshuang@box3 /data/logs]$ tailf Asf_Err_Log
2019-02-22 16:01:11 Asia/Shanghai | NOTICE | 28984 | Notice: Undefined variable: b in /data/www/box3.cn/apps/Bootstrap.php on line 21
2019-02-22 16:01:11 Asia/Shanghai | WARNING | 31486 | Warning: include(test.php): failed to open stream: No such file or directory in /data/www/box3.cn/apps/Bootstrap.php on line 20
2019-02-22 16:02:24 Asia/Shanghai | ERROR | 4137 | Fatal Error: AsfApplication::run() No method listaaction in DeviceService in /data/www/box3.cn/public/index.php on line 23
Stack trace:
## settled_uri = /v1/device/lista
#0 /data/www/box3.cn/public/index.php(23): AsfApplication->run()
#1 {main}
4.2 PHP腳本執(zhí)行時(shí)間耗時(shí)預(yù)警
[dongshuang@box3 /data/www/box3.cn/public]$ cat index.php
 array(
        "root_path" => dirname(__DIR__) . "/apps",
        "log_path" => "/data/logs", /* 日志保存目錄,寫入權(quán)限 */
        "dispatcher" => [
            "log" => ["timeout" => 1] /* 開啟 */
        ] 
    )
);

$app = new App($configs);
$app->run();
4.2.1 /data/logs/Asf_Timeout_Log 樣本
[dongshuang@box3 /data/logs]$ tailf Asf_Timeout_Log
2019-02-25 09:06:48 UTC | INFO | 26026 | 127.0.0.1:6379 Redis::set(110) executing too slow 0.201406 sec
2019-02-25 09:06:48 UTC | INFO | 26026 | 127.0.0.1:6379 Redis::get(111) executing too slow 0.201349 sec
2019-02-25 09:06:48 UTC | INFO | 26026 | /index/redis executing too slow 1.008510 sec
五、函數(shù)回調(diào)(callable)方案 Demo 5.1 PHP腳本執(zhí)行異常預(yù)警
[dongshuang@box3 /data/www/box3.cn/public]$ cat index.php
 array(
        "root_path" => dirname(__DIR__) . "/apps",
    )
);

$app = new App($configs);
$app->setErrorHandler("myErrorHandler");
$app->run();
5.1.1 異常預(yù)警 - 結(jié)果樣本
int(999)
string(33) "Fatal Error: Class "ck" not found"
string(53) "/data/www/box3.cn/apps/api/services/Index.php"
int(42)
5.2 PHP腳本執(zhí)行時(shí)間耗時(shí)預(yù)警
[dongshuang@box3 /data/www/box3.cn/public]$ cat index.php
 array(
        "root_path" => dirname(__DIR__) . "/apps",
    )
);

$app = new App($configs);
$app->setTimeoutHandler("myTimeoutHandler");
$app->run();
5.2.1 耗時(shí)預(yù)警 - 結(jié)果樣本
int(976)
string(44) "/index/redis executing too slow 0.508643 sec"
六、Asf 預(yù)警錯(cuò)誤號(hào)區(qū)間段說明 6.1 《異常預(yù)警》錯(cuò)誤號(hào)區(qū)間段 990 ~ 999

errno = 999, 表示含義: Fatal Error (框架會(huì)對(duì)異常信息進(jìn)行有效攔截, 防止服務(wù)端信息泄露)

errno = 998, 表示含義: Warning

errno = 997, 表示含義: Notice

errno = 996, 表示含義: Strict

errno = 995, 表示含義: Deprecated

errno = 994, 表示含義: Unkown Error

6.2 《超時(shí)預(yù)警》錯(cuò)誤號(hào)區(qū)間段 970 ~ 989

errno = 970, 表示含義: MySQL 單條SQL執(zhí)行時(shí)間超過預(yù)設(shè)閥值

errno = 971, 表示含義: Redis 單條NoSQL執(zhí)行時(shí)間超過預(yù)設(shè)閥值

errno = 972, 表示含義: Memcached 單條NoSQL執(zhí)行時(shí)間超過預(yù)設(shè)閥值

errno = 973, 表示含義: PgSQL 單條SQL執(zhí)行時(shí)間超過預(yù)設(shè)閥值

errno = 974, 表示含義: SQLite 單條SQL執(zhí)行時(shí)間超過預(yù)設(shè)閥值

errno = 975, 表示含義: CURL 請(qǐng)求時(shí)間超過預(yù)設(shè)閥值

errno = 976, 表示含義: 腳本完整生命周期請(qǐng)求時(shí)間超過預(yù)設(shè)閥值

持續(xù)開放更多的功能

七、結(jié)束語

感謝大家的閱讀,希望能給大家?guī)韼椭绻褂弥杏幸蓡栒?qǐng)聯(lián)系我們,當(dāng)然了我們也可以聊點(diǎn)更好玩的 ^_^

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/30179.html

相關(guān)文章

  • 新一代輕量級(jí)PHP擴(kuò)展框架 Asf

    摘要:一是什么全稱用語言編寫的輕量級(jí)擴(kuò)展框架專注于開發(fā)。這里只是給出了一種測(cè)試方法通過多次不同并發(fā)數(shù)測(cè)試結(jié)果得知與原生性能消耗是。業(yè)務(wù)開發(fā)速度結(jié)論采用框架開發(fā)業(yè)務(wù)代碼量能節(jié)約。 showImg(https://segmentfault.com/img/bVbamHp?w=320&h=320); 一、Asf 是什么? 全稱 API Services Framework, 用C語言編寫的輕量級(jí)P...

    iOS122 評(píng)論0 收藏0
  • Asf PHP 開發(fā)配置信息常駐系統(tǒng)內(nèi)存

    摘要:傳統(tǒng)與比較傳統(tǒng)的框架每次請(qǐng)求都會(huì)去重新加載配置文件。開啟情況下還是有執(zhí)行的過程時(shí)間框架讀取到配置文件的內(nèi)容保存到系統(tǒng)內(nèi)存下一次請(qǐng)求直接去內(nèi)存讀取數(shù)據(jù)。也提供非常簡(jiǎn)單的配置實(shí)現(xiàn)。 傳統(tǒng)MVC 與 Asf 比較 傳統(tǒng)的MVC框架 每次請(qǐng)求都會(huì)去重新加載配置文件。即使配置文件內(nèi)容沒有更新, 也會(huì)去重新加載一次。這是一個(gè)很不好的設(shè)計(jì)。(開啟Opcache情況下, 還是有執(zhí)行的過程時(shí)間) Asf...

    amuqiao 評(píng)論0 收藏0
  • 防火墻進(jìn)化史

    摘要:毫無疑問這一部分會(huì)引起廠商和粉絲的爭(zhēng)議,但是作為學(xué)術(shù)討論來看,作者堅(jiān)持這個(gè)觀點(diǎn)它們單獨(dú)不能構(gòu)成防火墻。部署防火墻的目的,即隔離網(wǎng)段網(wǎng)域間的安全風(fēng)險(xiǎn)。上文說道防火墻是程序,可能會(huì)使一些未涉足過嵌入式設(shè)備的粉絲感到迷惑。 showImg(http://segmentfault.com/img/bVbKG0); 一、聲明 此文僅代表我個(gè)人對(duì)防火墻的理解。不夸張的說,基于認(rèn)識(shí)的局限性,本文...

    用戶84 評(píng)論0 收藏0
  • Web API 開發(fā)實(shí)踐

    摘要:通過業(yè)務(wù)處理異常,將不正常的業(yè)務(wù)處理結(jié)果返回給調(diào)用者或其他。通常會(huì)在層中寫與數(shù)據(jù)庫相關(guān)的代碼,如表的關(guān)聯(lián)關(guān)系,表屬性的可取值等。返回此類響應(yīng)表示服務(wù)器拋出了未捕捉處理的異常或錯(cuò)誤。 前言 之前在公司負(fù)責(zé)了一個(gè)項(xiàng)目,進(jìn)行了前后端分離,筆者負(fù)責(zé)了整個(gè)項(xiàng)目的基本結(jié)構(gòu)的搭建,在此總結(jié)一些經(jīng)驗(yàn)。本文主要介紹后端web api的設(shè)計(jì)與實(shí)現(xiàn)。demo代碼鏈接:github代碼 基本架構(gòu) 代碼分層 應(yīng)...

    doodlewind 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<