2012-08-14 10 views
8

Acabo de agregar clojure.core.cache 0.6.1 a mi proyecto, hice un lein deps, seguí el ejemplo muy breve y claro aquí: https://github.com/clojure/core.cache y simplemente plano no funciona.clojure.core.cache simplemente no funciona usando su propio ejemplo

Ejemplo:

$lein repl 
REPL started; server listening on localhost port 20513 
user=> (require '[clojure.core.cache :as cache]) 
nil 
user=> (def fifoc (cache/fifo-cache-factory {})) 
#'user/fifoc 
user=> (cache/has? fifoc :foo) 
false 
user=> (cache/miss fifoc :foo "bar") 
{:foo "bar"} 
user=> (cache/has? fifoc :foo) 
false 

lo que va mal aquí? ¿Me estoy perdiendo el punto por completo? Lo he intentado con los otros backends de caché, todos con el mismo resultado. Intenté con diferentes claves, diferentes valores, diferentes espacios de nombres, diferentes alias - nada. Ejecutar las pruebas me da esto:

$ lein test clojure.core.cache.tests 

Testing clojure.core.cache.tests 

Ran 13 tests containing 273 assertions. 
0 failures, 0 errors. 

Lo que hace que este sea aún más misterioso. Miré las pruebas, y mientras ellos: importan los backends de la caché y los instalan en el modo java (miss (BasicCache. {}) ...), que también probé, eso también me falla exactamente de la misma manera.

¿Alguna ayuda antes de implementar una que funcione?

Respuesta

15

cache/miss devuelve un nuevo objeto de caché que debe usar para otras operaciones.

Ex:

user=> (cache/has? (cache/miss fifoc :foo "bar") :foo) 
true 

Su ejemplo se convierte en:

user=> (def fifoc (atom (cache/fifo-cache-factory {}))) 
#'user/fifoc 
user=> (swap! fifoc #(cache/miss % :foo "bar")) 
{:foo "bar"} 
user=> (cache/has? @fifoc :foo) 
true 
+1

Gracias por la respuesta. ¿El uso del ejemplo aquí: https://github.com/clojure/core.cache indica que necesito manejar el estado yo mismo? No parece ... Soy muy consciente de que podría hacerlo más claro que el tuyo anterior, pero me dieron la impresión de los ejemplos y de las pruebas que ya era. Veré la fuente y las pruebas nuevamente. – lsh

+5

Voy a poner esto a un mal ejemplo en su página principal sesgando mis expectativas. Incluso si manejaran el estado internamente, no estoy seguro de que realmente quisiera eso. – lsh

+0

ah, varios años después y el grado de mi verdor cuando hice esta pregunta es un poco embarazoso;) – lsh

Cuestiones relacionadas