1
피드 응답 재생 응답 Enumerator
을 결과로 feed
메소드로 전달하고 싶습니다. 생산/소비 단계에서 다음 단계 (또는 상태 유지)로 상태를 전달해야합니다. 여기 http://engineering.klout.com/2013/01/iteratees-in-big-data-at-klout/ 나는 그것이 스레드 안전 예를 찾았지만 확실하지 않은 :Play Enumerator에 상태를 추가하는 방법은 무엇입니까?
def pagingEnumerator(url:String):Enumerator[JsValue]={
var maybeNextUrl = Some(url) //Next url to fetch
Enumerator.fromCallback[JsValue] (retriever = {
val maybeResponsePromise =
maybeNextUrl map { nextUrl=>
WS.url(nextUrl).get.map { reponse =>
val json = response.json
maybeNextUrl = (json \ "next_url").asOpt[String]
val code = response.status //Potential error handling here
json
}
}
maybeResponsePromise match {
case Some(responsePromise) => responsePromise map Some.apply
case None => PlayPromise pure None
}
})
}
Enumerator
플레이 상태를 추가하는 방법은 무엇입니까? 이 예제는 스레드로부터 안전합니까?
Enumerator.unfoldM
를 사용해야합니다
내가 알기 전까지는 API에 맞서 머리를 부숴 야했습니다. – Ryan