2012-06-15 5 views
1

Контекст: я хочу написать ошпаривание (hadoop) для обхода страниц, и я хочу установить таймаут при извлечении url (без тайм-аута на URLConnection, я хочу, чтобы общее решение для других случаев таймаута) i.e. map function.Как выполнить операцию в scala с таймаутом?

Я думаю о фьючерсах, которые были убиты после некоторого времени со всеми ресурсами, выпущенными, так как это критический код памяти. Не уверен, что использовать в scala API.

+1

Вы можете использовать AKKA фьючерсы, но они вызывать исключение по тайм-ауту, который может быть или не быть тем, что вы ищете http://doc.akka.io/docs/akka/2.0.1/scala/futures.html – Noah

+0

Я бы предпочел построить в scala API, так как любая новая зависимость - это боль в банке хаопа. – yura

+0

Это не дубликат, но я задал аналогичный вопрос: http://stackoverflow.com/questions/7651293/comput-with-time-limit Возможно, один из ответов вам поможет. – paradigmatic

ответ

0

В то время как Akka был предложен - и превосходит следующее решение - у Scala есть своя собственная, встроенная модель актера, очень похожая на Akka, которую вы можете пожелать. Примеры можно найти здесь:

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

Вы, вероятно, хотите, либо reactWithin или receiveWithin, документация по которой можно найти здесь:

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