@anyd3v черт, я все равно не понимаю =( допустим у меня есть функции берущие из БД некий резалтсет и возвращающие его в виде листов c json. что то типа public List getCar(),public List getHome() и т.д. как мне правильно организовать кеширование, чтобы данные в кэше например раз в час обновлялись, а предыдущие удалялись(только свежие данные в кеше)?
вот так?
def cachedOp[T](key: T): Future[List] = cache(key) {
getCar();
getHome();
}
?
прошу прощения что задаю возможно очень тупые вопросы но я очень хочу разобраться и понять по шагам как это работает. почему например создаётся массив фьючеров и так далее.
наверное проблема в том что я пытаюсь построить систему в голове, но не понимаю как она работает(мб, мой английский недостаточно хорош) или не понимаю фьючеры. если можно то пожалуйста помогите мне с несколькими глупыми вопросами :
1) чем отличаются вот эти три варианта
def apply(key: Any)(expr: => V): Future[V]
def apply(key: Any)(future: => Future[V]): Future[V]
def apply(key: Any)(func: Promise[V] => Unit): Future[V]
я не понял что за пуш-стиль и вообще что для чего и лучше использовать
2) сам принцип работы кэша в спрее
def cachedOp[T](key: T): Future[Double] = cache(key) {
expensiveOp()
} - вот я не уловил, это я один раз какие то данные закешировал или кэш будет как то по таймеру или еще как сам обновляться?
3) наконец в чем реальные плюсы spray-caching и вообще всего spray(если у вас есть опыт работы с ним), а то приказ получен а чем именно спрей так хорошо я не понимат.
4) какие подводные камни и хитрости работы с ним
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.