я использую twitter4s и play-framework-2.4.3
Я получаю твиты, отправленные актеру для выполнения некоторой обработки над ним и актером необходимо отправить ответ обратно контроллеру. Вот мой код
def totalTweetCount = Action.async {
log.debug("in the action tofaltweets")
def getTweet: PartialFunction[StreamingMessage, Unit] = {
case tweet: Tweet =>
future = ask(myActor, TotalNumberOfTweets(tweet)).mapTo[Int]
}
val streaming: Future[TwitterStream] = streamingClient.sampleStatuses(stall_warnings = true)(getTweet)
}
class MyActor extends Actor {
//sends back the response to the calling code
}
. Теперь проблема в том, что строка ниже строки работает непрерывно (это поток в твиттере), непрерывно вызывает метод getTweet и отправляет объект твита в актер
val streaming: Future[TwitterStream] = streamingClient.sampleStatuses(stall_warnings = true)(getTweet)
я хочу получить ответ актера и отобразить его в блоке Ok моего действия, когда я делаю что-то подобное, я получаю NullPointerException
def totalTweetCount = Action.async {
log.debug("in the action tofaltweets")
def getTweet: PartialFunction[StreamingMessage, Unit] = {
case tweet: Tweet =>
var future: Future[Int] = null
future = ask(myActor, TotalNumberOfTweets(tweet)).mapTo[Int]
}
val streaming: Future[TwitterStream] = streamingClient.sampleStatuses(stall_warnings = true)(getTweet)
future.map {
result =>
Ok("Total number of tweets" + result)
}
}
, если я делаю это def totalTweetCount = Action.asyn c {log.debug ("в действии tofaltweets")
def getTweet: PartialFunction[StreamingMessage, Unit] = {
case tweet: Tweet =>
var future: Future[Int] = null
future = ask(actorManager, TotalNumberOfTweets(tweet)).mapTo[Int]
future.map {
result =>
Ok("Total number of tweets" + result)
}
}
val streaming: Future[TwitterStream] = streamingClient.sampleStatuses(stall_warnings = true)(getTweet)
} также неверно, так что подход должен быть правильным