Я сейчас работаю над твиттер-приложением, используя twitter4j. В основном я разрешаю пользователям создавать учетные записи, добавлять свои личные ключевые слова и запускать собственный поток.Глобальные переменные в структуре воспроизведения/Отслеживание открытых потоков
Я стараюсь играть как можно лучше с twitter api. Избегайте ограничений скорости, не подключайте одну и ту же учетную запись снова и снова. То, что мне кажется нужным сделать, это иметь какой-то объект, содержащий список всех активных объектов TwitterStream, но я не знаю, как подойти к этому , Это контроллер для запуска потока.
public static Result startStream(){
ObjectNode result = Json.newObject();
if (
//openStreams is a Map<Long,TwitterStream> in the TwitterListener class
TwitterListener.openStreams.containsKey(Long.parseLong(session().get("id")))
){
result.put("status", "running");
return ok(result);
}
Cache.set("twitterStream", TwitterListener.listener(
Person.find.byId(
Long.parseLong(session().get("id"))
)
)
);
result.put("status", "OK");
return ok(result);
}
Как вы можете видеть, что я ставлю их в кэш прямо сейчас, но я хотел бы держать потоки открытыми в течение длительного периода времени, так что кэш не будет достаточно.
Что является наиболее подходящим способом структурирования моего приложения для этой цели?
Должен ли я использовать Akka?
Как я могу реализовать глобальный объект Play для этого?