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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

tornado HTTPClient 和 gen 模塊的實(shí)際區(qū)別

tornado HTTPClient 和 gen 模塊的實(shí)際區(qū)別

千萬里不及你 2019-04-06 08:31:40
剛剛在看tornado的gen模塊http://www.tornadoweb.org/documentati...classAsyncHandler(RequestHandler):@asynchronousdefget(self):http_client=AsyncHTTPClient()http_client.fetch("http://example.com",callback=self.on_fetch)defon_fetch(self,response):do_something_with_response(response)self.render("template.html")可以用gen模塊優(yōu)化成classGenAsyncHandler(RequestHandler):@asynchronous@gen.enginedefget(self):http_client=AsyncHTTPClient()response=yieldgen.Task(http_client.fetch,"http://example.com")do_something_with_response(response)self.render("template.html")ok,現(xiàn)在書抄完了,開始提問我使用tornado.httpclient.HTTPClienthttp_client=httpclient.HTTPClient()try:response=http_client.fetch("http://www.google.com/")printresponse.bodyexcepthttpclient.HTTPError,e:print"Error:",e也可以實(shí)現(xiàn)同步的代碼風(fēng)格,實(shí)際上應(yīng)該也是異步執(zhí)行,因?yàn)橛玫搅薎OLoop我的問題是1.tornado.httpclient.HTTPClient用在生產(chǎn)環(huán)境有問題嘛?2.兩種寫法達(dá)到的效果是不是一樣的,如果不一樣,有什么區(qū)別?
查看完整描述

2 回答

?
慕田峪7331174

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超13個(gè)贊

你這種寫法的run起來當(dāng)然是沒有問題的.但是httpclient.HTTPClient()是blocking的,而Tornado是單進(jìn)程單線程的,你這樣部署在生產(chǎn)環(huán)境,一旦有個(gè)request向外發(fā)起http請(qǐng)求,因?yàn)檫@個(gè)向外發(fā)起的http請(qǐng)求是blocking的,整個(gè)進(jìn)程會(huì)因此block住,后續(xù)所有的請(qǐng)求都會(huì)被掛起,直到你這個(gè)httpclientresponse.所以可用性會(huì)很差.
答案:
1.用在生產(chǎn)環(huán)境絕對(duì)會(huì)有問題.
2.一個(gè)是同步一個(gè)是no-blocking.P.S.Tornado是一個(gè)No-blocking的synchronouswebserver,而非純asynchronouswebserver.很多人混淆這一點(diǎn).no-blocking真不是異步,,no-blocking的原理就是io的時(shí)候進(jìn)程不斷的主動(dòng)詢問kernel數(shù)據(jù)ready了沒有,數(shù)據(jù)ready了no-blocking從kernel會(huì)執(zhí)行recvfrom從kernel拷數(shù)據(jù),這個(gè)時(shí)候進(jìn)程是被block住的.在而異步是不需要進(jìn)程主動(dòng)詢問,kernel在ready的時(shí)候發(fā)signal給進(jìn)程.不需要執(zhí)行revcfrom.
                            
查看完整回答
反對(duì) 回復(fù) 2019-04-06
  • 2 回答
  • 0 關(guān)注
  • 311 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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