Как да изпълня операция в scala с изчакване?

Контекст: Искам да напиша scalding job(hadoop) за обхождане на страници и искам да задам изчакване при извличане на url (без изчакване на URLConnection, искам общо решение за други случаи на изчакване), т.е. функция за карта.

Мисля за фючърси, които се убиват след известен таймаут с всички освободени ресурси, тъй като това е критичен код за паметта. Не съм сигурен какво да използвам в scala API.


person yura    schedule 15.06.2012    source източник
comment
Можете да използвате фючърси на akka, но те хвърлят изключение при изчакване, което може или не може да е това, което търсите doc.akka.io/docs/akka/2.0.1/scala/futures.html   -  person Noah    schedule 16.06.2012
comment
Бих предпочел да изградя scala API, тъй като всяка нова зависимост е болка в hadoop jar.   -  person yura    schedule 16.06.2012
comment
Не е дубликат, но зададох подобен въпрос: stackoverflow.com/questions /7651293/computation-with-time-limit Може би един от отговорите ще ви помогне.   -  person paradigmatic    schedule 16.06.2012


Отговори (1)


Въпреки че Akka беше предложено - и е по-добро от следното решение - Scala наистина има свой собствен, вграден в Actor модел, много подобен на Akka, който може да ви помогне. Примери можете да намерите тук:

http://www.scala-lang.org/node/242

Вероятно ще искате или reactWithin, или receiveWithin, документацията за които можете да намерите тук:

http://www.scala-lang.org/api/current/scala/actors/TIMEOUT%24.html

person Jeff Van Vranken    schedule 19.06.2012