カーマインとの呼び出しがどのように行われるべきかについて私は混乱しています。私はcarmineのドキュメントwcar
で説明されているマクロを見つけました:
(defmacro wcar [& body] `(car/with-conn pool spec-server1 ~@body))
wcar
redisコマンドに加えてredisと話したいときは、本当に電話をかける必要がありますか?それとも、最初に一度だけ呼び出すことはできますか?もしそうなら、どのように?
これは、tavisruddのredisライブラリを含むいくつかのコードがどのように見えるかです(私のおもちゃのURL短縮プロジェクトのテストスイートから):
(deftest test_shorten_doesnt_exist_create_new_next
(redis/with-server test-server
(redis/set "url_counter" 51)
(shorten test-url)
(is (= "1g" (redis/get (str "urls|" test-url))))
(is (= test-url (redis/get "shorts|1g")))))
そして今、私はそれを次のように書くことによってのみカーマインで動作させることができます:
(deftest test_shorten_doesnt_exist_create_new_next
(wcar (car/set "url_counter" 51))
(shorten test-url)
(is (= "1g" (wcar (car/get (str "urls|" test-url)))))
(is (= test-url (wcar (car/get "shorts|1g")))))
それで、それを使用する正しい方法は何ですか、そして私が得ていない根本的な概念は何ですか?