18
我最近在做一些Akka,並想知道:我能阻止Akka的I/O而不會陷入大麻煩嗎?讓我們說我們有一個Actor來阻止I/O,因爲它使用了一個遺留的庫或者其他任何原因:我不能只爲那些大小合適的ThreadPool的Actors使用一個特殊的調度器,並且沒有阻止I/O阻止所有其他演員,因爲他們與不同的調度員運行?在Akka阻止IO
這有什麼缺點?從演員調用第三方HTTP-API的最佳方式是什麼?
我最近在做一些Akka,並想知道:我能阻止Akka的I/O而不會陷入大麻煩嗎?讓我們說我們有一個Actor來阻止I/O,因爲它使用了一個遺留的庫或者其他任何原因:我不能只爲那些大小合適的ThreadPool的Actors使用一個特殊的調度器,並且沒有阻止I/O阻止所有其他演員,因爲他們與不同的調度員運行?在Akka阻止IO
這有什麼缺點?從演員調用第三方HTTP-API的最佳方式是什麼?
阻止IO通常是一個壞主意,尤其是在被動多線程環境中,所以您的第一步是儘量避免它一起使用,這意味着使用AsyncHttpClient
或HttpAsyncClient
進行調查。
如果這不起作用,您至少可以通過給阻塞角色自己的線程來降低風險。這當然會很昂貴,你仍然有冒險填滿他們的郵箱,但這是使用阻塞IO的選擇。
您也可能想要查看IO Actor模塊,以獲得更爲原始的網絡IO接口。
希望任何這會有所幫助,
乾杯, √
什麼用未來從演員之內? – sourcedelica 2012-02-28 22:49:35
你仍然會阻止其中你沒有無限的線程。演員或期貨不是問題。 – 2012-02-29 08:50:04
我不喜歡問,是否有一個例子使用HTTP調用作爲來自演員的客戶端,我只能找到一個使用未來並等待它的人 - 這也阻止了線程。 – Malax 2012-02-29 16:12:56