亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
123下一頁
最近訪問板塊 發(fā)新帖
查看: 11753 | 回復(fù): 24
打印 上一主題 下一主題

mojolicious自帶的不同server的問題(morbo和hypnotoad) [復(fù)制鏈接]

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2013-10-18 09:26 |只看該作者 |倒序?yàn)g覽
這幾天被一些問題纏繞,前天下定決心花了,怠工一下午,把mojolicious的主要文檔全看了一遍,然后把現(xiàn)有的一個(gè)項(xiàng)目從dancer轉(zhuǎn)到了mojolicious。

看來我得收回以前的一個(gè)反mojo貼了。mojolicious,確實(shí)好。優(yōu)點(diǎn)我在之后的帖子里再闡述:)

我主要是想問問那些在生產(chǎn)環(huán)境用mojolicious的人,一般會(huì)選擇什么server?

問題1. morbo和hypnotoad從介紹上看是完全一樣的,難道唯一的區(qū)別就是hypnotoad是Prefork的。。?

問題2. 我還沒來得及看mojo的代碼。只從目前測(cè)試的結(jié)果看。Feersum和Twiggy是anyevent/EV寫的,用這兩個(gè)東西的時(shí)候plackup啟動(dòng)應(yīng)用,如果代碼中有阻塞的等待,比如$cv->recv,比如$coro->join。這個(gè)時(shí)候server會(huì)報(bào)錯(cuò)退出,提示阻塞了整個(gè)進(jìn)程。這是由于Twiggy的進(jìn)程就是$cv->recv來結(jié)束的,如果其中再有阻塞肯定會(huì)報(bào)錯(cuò)。
我看Mojo::Server::Hypnotoad和Mojo::Server::Morbo的文檔介紹,這兩個(gè)都是EV(需要安裝了EV)寫的non-blocking server,為什么我在mojolicious框架里就可以做阻塞等待這種操作recv,join?


TIA

論壇徽章:
42
19周年集字徽章-周
日期:2019-10-14 14:35:31平安夜徽章
日期:2015-12-26 00:06:30數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2015-12-01 06:20:002015亞冠之首爾
日期:2015-11-04 22:25:43IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-08-17 06:20:00寅虎
日期:2014-06-04 16:25:27獅子座
日期:2014-05-12 11:00:00辰龍
日期:2013-12-20 17:07:19射手座
日期:2013-10-24 21:01:23CU十二周年紀(jì)念徽章
日期:2013-10-24 15:41:34IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-01-27 06:20:0015-16賽季CBA聯(lián)賽之新疆
日期:2016-06-07 14:10:01
2 [報(bào)告]
發(fā)表于 2013-10-18 11:44 |只看該作者
問題1  感覺就是這樣的,后端http模塊都是相同的,感覺hypnotoad/morbo更像一個(gè)啟動(dòng)sh
  mojo配twiggy會(huì)有問題.
問題2  也是我一直困惑的.基于事件的app server和app之間代碼的透明性問題.

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
3 [報(bào)告]
發(fā)表于 2013-10-18 12:53 |只看該作者
回復(fù) 2# laputa73

我以前試圖用Feersum啟動(dòng)mojo,訪問有時(shí)候會(huì)報(bào)錯(cuò)。
我覺得用mojo就完全不再考慮使用twiggy了,hypnotoad已經(jīng)足夠好了,況且如果不是不得已,半個(gè)膏藥國模塊我都不想用的。

另外一提,據(jù)我目前了解,mojo必須要用它自己的server啟動(dòng)才能支持他所有的real-time feature。用PSGI server就不行了。所以starman/starlet一類的就不考慮了。也讓PSGI去死吧。
   

論壇徽章:
1
辰龍
日期:2014-05-15 19:37:15
4 [報(bào)告]
發(fā)表于 2013-10-18 17:04 |只看該作者
本帖最后由 iakuf 于 2013-10-18 17:34 編輯

回復(fù) 1# py


   
問題1. morbo和hypnotoad從介紹上看是完全一樣的,難道唯一的區(qū)別就是hypnotoad是Prefork的。。?


morbo 是單進(jìn)程,默認(rèn)用來做測(cè)試用, 你可以一邊修改代碼,他會(huì)自動(dòng) reload 加載你的修改. 只要你的修改的代碼是在 lib templates 目錄下. Dancer 的測(cè)試用 Web 服務(wù)器也是這樣,但是程序本身有大的錯(cuò)會(huì)自動(dòng)退出.但 Morbo 不會(huì).
hypnotoad 是作者為 Linux 和 Unix 優(yōu)化過的多進(jìn)程的 prefork 的 web 服務(wù)器.全事件支持, 并且有著非常高的性能.

問題2. 我還沒來得及看mojo的代碼。只從目前測(cè)試的結(jié)果看。Feersum和Twiggy是anyevent/EV寫的,用這兩個(gè)東西的時(shí)候plackup啟動(dòng)應(yīng)用,如果代碼中有阻塞的等待,比如$cv->recv,比如$coro->join。這個(gè)時(shí)候server會(huì)報(bào)錯(cuò)退出,提示阻塞了整個(gè)進(jìn)程。這是由于Twiggy的進(jìn)程就是$cv->recv來結(jié)束的,如果其中再有阻塞肯定會(huì)報(bào)錯(cuò)。
我看Mojo::Server::Hypnotoad和Mojo::Server::Morbo的文檔介紹,這兩個(gè)都是EV(需要安裝了EV)寫的non-blocking server,為什么我在mojolicious框架里就可以做阻塞等待這種操作recv,join?


正常的基于事件的程序, 是希望整個(gè) web 服務(wù)器支持事件的,不然就是單個(gè)進(jìn)程搞這些事情, 直接 recv 事件就退出一個(gè)條件了.所以如果想 plackup 啟動(dòng)這些程序沒有問題,需要指定后端服務(wù)器為 Feersum 和 Twiggy. 這時(shí)我想就不會(huì)出錯(cuò)了.
在我的應(yīng)用中,如果是使用 Feersum 的時(shí)候,我會(huì)使用它的原生模式.因?yàn)榧恿藀lack 性能就會(huì)下降不少. 在 Feersum 原生模式有著 nginx 的性能.
另外,還有個(gè)理解上的問題, 在你的事件程序中, 你需要知道,你的整個(gè) Web server ,象 Feersum 本身就是相當(dāng)一個(gè)大的事件集.它在整個(gè)程序的最外層有一個(gè)一直在等永遠(yuǎn)不可能接收到的 recv (類似 EV::run).
所以,在使用基于事件的 Web server 的程序中,你要給 recv 理解成 run (多個(gè) recv 當(dāng)然就不是這樣), 是用于讓事件循環(huán)開始的條件. 如果使用 EV ,你可以給他理解成 EV::run. 這時(shí), 象 AnyEvent::HTTP 之類, 都不在需要使用 recv 讓這個(gè)事件開始跑起來,只需要正常的寫就好了. 不要考慮 AE 中的 cv 這步了.


論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
5 [報(bào)告]
發(fā)表于 2013-10-18 20:43 |只看該作者
iakuf 發(fā)表于 2013-10-18 17:04
回復(fù) 1# py

另外,還有個(gè)理解上的問題, 在你的事件程序中, 你需要知道,你的整個(gè) Web server ,象 Feersum 本身就是相當(dāng)一個(gè)大的事件集.它在整個(gè)程序的最外層有一個(gè)一直在等永遠(yuǎn)不可能接收到的 recv (類似 EV::run).
所以,在使用基于事件的 Web server 的程序中,你要給 recv 理解成 run (多個(gè) recv 當(dāng)然就不是這樣), 是用于讓事件循環(huán)開始的條件. 如果使用 EV ,你可以給他理解成 EV::run. 這時(shí), 象 AnyEvent::HTTP 之類, 都不在需要使用 recv 讓這個(gè)事件開始跑起來,只需要正常的寫就好了. 不要考慮 AE 中的 cv 這步了.


解釋的非常清楚。謝謝。
我剛才在做mojolicious的異步數(shù)據(jù)庫的時(shí)候才明白。在任何事件框架里做“recv,join”操作都是錯(cuò)誤的,局部的異步?jīng)]有意義。整個(gè)web server就有一個(gè)recv,所有事件共用這一個(gè)就好了。

論壇徽章:
3
CU十二周年紀(jì)念徽章
日期:2013-10-24 15:41:34子鼠
日期:2013-12-14 14:57:19射手座
日期:2014-04-25 21:23:23
6 [報(bào)告]
發(fā)表于 2013-10-18 22:09 |只看該作者
LZ 我想學(xué)習(xí)多線程之類,感覺這方面的模塊很多,自己看了走了很多彎路。求指導(dǎo){:3_199:}
例如:開始學(xué)什么,然后進(jìn)階學(xué)什么。。
十分感謝

論壇徽章:
1
辰龍
日期:2014-05-15 19:37:15
7 [報(bào)告]
發(fā)表于 2013-10-18 23:59 |只看該作者
本帖最后由 iakuf 于 2013-10-19 00:04 編輯

回復(fù) 5# py

發(fā)現(xiàn) Mojo 的好處啦吧.除了本身在不使用異步的時(shí)候, 功能和完整性上 Mojo 就比 Dancer 強(qiáng)很多.如果加上整個(gè) Web Server 上的異步,可以讓程序的性能提升太多太多.
只是想要完全異步,對(duì)寫程序的人,有一定的要求... 另外, Mojo 可以直接使用 AnyEvent 的所有東西(有 EV 在 Mojo 中事件驅(qū)動(dòng)就會(huì)變成 ev),這個(gè)也讓這個(gè)框架能力強(qiáng)很多.
   

論壇徽章:
1
辰龍
日期:2014-05-15 19:37:15
8 [報(bào)告]
發(fā)表于 2013-10-19 00:04 |只看該作者
回復(fù) 6# mcshell
放棄這個(gè)想法

   

論壇徽章:
3
CU十二周年紀(jì)念徽章
日期:2013-10-24 15:41:34子鼠
日期:2013-12-14 14:57:19射手座
日期:2014-04-25 21:23:23
9 [報(bào)告]
發(fā)表于 2013-10-19 01:02 |只看該作者
本帖最后由 mcshell 于 2013-10-19 01:05 編輯

回復(fù) 8# iakuf


    凱哥,,有什么好的建議?

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
10 [報(bào)告]
發(fā)表于 2013-10-19 06:52 |只看該作者
mcshell 發(fā)表于 2013-10-18 22:09
LZ 我想學(xué)習(xí)多線程之類,感覺這方面的模塊很多,自己看了走了很多彎路。求指導(dǎo)
例如:開始學(xué)什么 ...


多線程的可用之處太少,偶爾出現(xiàn)也能用多進(jìn)程代替。網(wǎng)絡(luò)應(yīng)用目前比較流行非阻塞,這也非常符合網(wǎng)絡(luò)應(yīng)用的需求。多線程在網(wǎng)絡(luò)應(yīng)用中都是不合理的。
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP