0
我正試圖在ring/compojure應用程序中設置LevelDB,並尋找一種慣用的方式來訪問每個請求中打開的數據庫描述符。在ring/compojure webapp中使用LevelDB
例如:
(defn -main
"I don't do a whole lot ... yet."
[& args]
(println "Opening LevelDB file in db/main")
(with-open [main-db (db/open "db/main")]
(println "Running server on port 3000")
(run-jetty #'web/app {:port 3000})))
你如何訪問main-db
描述到請求處理程序?
即:
(defroutes handler
(GET "/test" []
(db/put main-db (.getBytes "testKey2") (.getBytes "testValue2"))
"<h1>Hello World</h1>")
PS:我使用的是性LevelDB-CLJ從Sedward lib和它包裝成一個clojar:https://clojars.org/org.clojars.aircart/leveldb-clj
謝謝!我實際上通過定義一個將描述符作爲參數的函數來解決這個問題:'(run-jetty(web/load-with-descriptor main-db){:port 3000})))'並移動定義該函數內部的路由,以便在內部定義描述符。您是否會看到使用環形碼頭時遇到的任何問題?或者使用netty會更有意義? – user2598730