clsql 似乎支持连接池,因为该connect
方法具有:pool
密钥,并且cliki在使用with-database
. 我找不到在线使用的示例,我真的不确定我是否正确使用它。
目前我做这样的事情:
(defvar connection-string '("localhost" "database" "user" "password"))
(loop repeat 4 do (clsql:connect connection-string :pool t :database-type :mysql))
(defun called-on-seperate-thread (the-query)
(clsql:with-database (db connection-string :pool t :database-type :mysql)
(clsql:query the-query :database db)))
但 4 个数据库连接中只有 2 个被使用。我已经运行我的应用程序大约一周了,它似乎是 cliki 建议的线程安全的,但我不确定我能证明它,我很困惑为什么它只使用我的一些连接当它应该从池中随机选择它们时。
如何在 clsql 中正确使用连接池?