国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

並發(fā) - nginx外掛程式如何實(shí)現(xiàn)非阻塞的方式執(zhí)行耗時(shí)操作?
phpcn_u1582
phpcn_u1582 2017-05-16 17:12:26
0
1
569

問(wèn)題描述:

nginx都知道效能給力的原因是建立在其非同步非阻塞的基礎(chǔ)上實(shí)現(xiàn)的,因此開發(fā)nginx插件時(shí)處理網(wǎng)路請(qǐng)求一定切記阻塞的方式執(zhí)行某些耗時(shí)操作。否則會(huì)嚴(yán)重影響nginx效能...

這個(gè)問(wèn)題就來(lái)了:如果我想在外掛程式中執(zhí)行某些耗時(shí)操作呢?例如查詢資料庫(kù)(資料庫(kù)不支援http協(xié)議,有特殊協(xié)議)?

ps: 我可以開一個(gè)執(zhí)行緒池,這些阻塞操作丟到池子裡,但是有什麼辦法可以讓目前請(qǐng)求處理掛起到nginx框架的事件佇列裡?當(dāng)在阻塞操作的回呼函數(shù)裡在發(fā)送改變狀態(tài),讓nginx繼續(xù)接著剛才的請(qǐng)求繼續(xù)處理?

感謝

phpcn_u1582
phpcn_u1582

全部回覆(1)
迷茫

資料庫(kù)查詢本質(zhì)上就是網(wǎng)路通信,本質(zhì)上只要你socket的read,write都是非阻塞的就沒(méi)問(wèn)題。說(shuō)起來(lái)容易實(shí)際做起來(lái)比較複雜。 nginx本身有一些可重複使用的機(jī)制可以實(shí)現(xiàn)在http上非阻塞的各種操作。然而像是tcp之類的通信,可能並沒(méi)有現(xiàn)成的。你要自己去寫,我感覺(jué)比較複雜,還要結(jié)合在nginx裡面。

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板