как получить твиты из остановленного потока с помощью twitter4s - PullRequest
0 голосов
/ 14 февраля 2020

я использую twitter4s https://github.com/DanielaSfregola/twitter4s здесь показано, как получить поток Twitter и как его остановить

def simulateNextActionAfterMillis(millis: Long): Future[Unit] = Future {
      Thread.sleep(millis); println()
    }

    for {
      streamA <- streamingClient.sampleStatuses(stall_warnings = true)(printTweetText)
      _ <- simulateNextActionAfterMillis(10000)
    } yield streamA.close()

def printTweetText: PartialFunction[StreamingMessage, Unit] = {
      case tweet: Tweet =>
        println(tweet.text)
    }

все, что мне нужно, это общий объект твитов после закрытия потока как я могу получить это?

1 Ответ

0 голосов
/ 14 февраля 2020

Я не мог понять вашу проблему, посмотрев на код, поэтому не могу ответить на реальный вопрос.

Но я подумал указать, что вы никогда не должны имитировать будущее, "спя" в потоке .

Вы можете создать неблокирующее будущее, используя следующее,

import java.util.{Timer, TimerTask}

import scala.concurrent.{Future, Promise}
import scala.concurrent.duration.Duration
import scala.util.Try

object FutureUtils {

  val timer = new Timer();

  def createDelayedFuture[T](delayInMills: Long, creator: () => T): Future[T] = {
    val promise = Promise[T]()
    timer.schedule(
      new TimerTask {
        override def run(): Unit = promise.complete(Try(creator()))
      },
      delayInMills
    )
    promise.future
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...