99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

Blink生命周期

2018-11-25 21:59 更新

Blink生命周期

前面關(guān)于 Blink部分有過(guò)介紹,Blink 不像其他運(yùn)行在 php-fpm 或者 mod_php 之上的傳統(tǒng) PHP 框架,它的生命周期 也是很不相同的,在使用 Blink 進(jìn)行應(yīng)用開發(fā)時(shí),我們需要時(shí)刻牢記這一點(diǎn),以減少不必要的困惑。

在 php-fpm 或者 mod_php 中,幾乎所有的資源(諸如像對(duì)象、數(shù)據(jù)庫(kù)鏈接等)都僅僅存在于一個(gè)請(qǐng)求之間,所有的這些資源都會(huì)在請(qǐng)求結(jié)束時(shí)釋放。這樣的 工作機(jī)制對(duì)于小規(guī)模的應(yīng)用是沒什么問題的,但對(duì)于大規(guī)模的應(yīng)用,其所帶來(lái)的性能開銷是不可忽視的。這也是為什么 Blink 存在的原因,在 Blink 中, 我們盡最大努力減少資源的重復(fù)申請(qǐng)與釋放,獲得盡可能高的性能。

為此,Blink 的生命周期會(huì)比 php-fpm 或者 mod_php 之類更加復(fù)雜,我們?cè)陂_發(fā) Blink 應(yīng)用的時(shí)候也需要謹(jǐn)慎的處理資源的申請(qǐng)與釋放。一個(gè) Blink 應(yīng)用的有三個(gè)階段,啟動(dòng)階段、請(qǐng)求處理階段和退出階段,下面就每個(gè)階段進(jìn)行詳細(xì)介紹:

啟動(dòng)階段

首先,Blink 采用子進(jìn)程來(lái)處理用戶請(qǐng)求,每個(gè)子進(jìn)程包含一個(gè) Blink 應(yīng)用程序(也就是一個(gè) Blink Application 實(shí)例),每個(gè)應(yīng)用會(huì)隨著子進(jìn)程的創(chuàng)建 而創(chuàng)建。

一旦 Blink 應(yīng)用創(chuàng)建好后,$application->bootstrap() 方法將會(huì)被調(diào)用,啟動(dòng)應(yīng)用,在這個(gè)方法中主要會(huì)做以下幾件事情:

  1. 設(shè)置應(yīng)用的配置信息,比如默認(rèn)時(shí)區(qū)
  2. 注冊(cè)應(yīng)用服務(wù),如日志、errorHandler等
  3. 注冊(cè)路由

一旦應(yīng)用啟動(dòng)成功,他就會(huì)等待并處理服務(wù)器發(fā)送過(guò)來(lái)的請(qǐng)求。

請(qǐng)求處理

應(yīng)用啟動(dòng)之后,就會(huì)開始等待處理請(qǐng)求,當(dāng)有請(qǐng)求到來(lái)的時(shí)候,$application->handleRequest() 將會(huì)被調(diào)用來(lái)處理這個(gè)請(qǐng)求,下面是一個(gè)請(qǐng)求處理的 過(guò)程:

  1. 路由分發(fā),通過(guò)預(yù)先定義好的路由找到對(duì)應(yīng)的控制器
  2. 創(chuàng)建對(duì)應(yīng)控制器實(shí)例
  3. 調(diào)用注冊(cè)好的 Request 中間件
  4. 執(zhí)行控制器對(duì)應(yīng)的 Action
  5. 調(diào)用注冊(cè)好的 Response 中間件
  6. 結(jié)束請(qǐng)求并把數(shù)據(jù)返回給服務(wù)器

與 php-fpm 或 mod_php 相比,Blink 很重要的不同就是一個(gè)應(yīng)用同時(shí)處理多個(gè)請(qǐng)求。在這多個(gè)請(qǐng)求之間,Application 對(duì)象及其注冊(cè)在其之上的服務(wù) 都是一直存在并且能夠很好的復(fù)用,盡量減少了不必要的重新申請(qǐng)資源的開銷。也正是因?yàn)檫@個(gè)原因,Blink 比 php-fpm 或 mod_php 的性能要高許多。

退出階段

當(dāng)一個(gè)應(yīng)用(或者子進(jìn)程)達(dá)到了 maxRequests 最大處理請(qǐng)求數(shù)量的限制或者接收到 TERM 信號(hào)時(shí),該應(yīng)用就會(huì)自動(dòng)退出,對(duì)應(yīng)進(jìn)程內(nèi)部的所有資源和 數(shù)據(jù)庫(kù)鏈接都會(huì)被釋放。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)