Я пытаюсь найти лучший способ создать Redis Pool, а затем совершить звонки в Redis из маршрута Spray. Я хочу, чтобы я мог использовать пул соединений для соединений Redis. Что было бы лучшим способом создать экземпляр бассейна и использовать его в моих маршрутах распыления? Есть ли лучший способ создать «глобальный» пул, который можно использовать? Должен ли я создать актера вместо этого и использовать его для совершения вызовов redis? Я, очевидно, немного невежественна здесь.Вызвать Redis (или другой db) из Spray Route
Сырой Redis Клиент:
object RedisClient {
val pool = new JedisPool(new JedisPoolConfig(), "localhost")
def getValue(key: String): String= {
try{
val jedis = pool.getResource()
//returns redis value
jedis.get(key)
}
}
}
маршрут, который заканчивается вызовом функции, которая использует клиент REDIS
trait DemoService extends HttpService {
val messageApiRouting =
path("summary"/Segment/Segment) { (dataset, timeslice) =>
onComplete(getSummary(dataset, timeslice)) {
case Success(value) => complete(s"The result was $value")
case Failure(ex) => complete(s"An error occurred: ${ex.getMessage}")
}
}
def getSummary(dataset: String, timeslice: String): Future[String] = Future {
val key = dataset + timeslice
RedisClient.getValue(key)
}
}
Soumya Спасибо за всю информацию. Я посмотрю. Очень ценю ответ. – scarpacci