DB connection pooling in HTTPd
parent
c6e91eb009
commit
df9277c4ca
|
@ -0,0 +1,4 @@
|
|||
IN: http.server.db.tests
|
||||
USING: tools.test http.server.db ;
|
||||
|
||||
\ <db-persistence> must-infer
|
|
@ -1,16 +1,17 @@
|
|||
! Copyright (C) 2008 Slava Pestov.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: db http.server http.server.sessions kernel accessors
|
||||
continuations namespaces destructors ;
|
||||
USING: db db.pooling http.server http.server.sessions kernel
|
||||
accessors continuations namespaces destructors ;
|
||||
IN: http.server.db
|
||||
|
||||
TUPLE: db-persistence < filter-responder db params ;
|
||||
TUPLE: db-persistence < filter-responder pool ;
|
||||
|
||||
C: <db-persistence> db-persistence
|
||||
|
||||
: connect-db ( db-persistence -- )
|
||||
[ db>> ] [ params>> ] bi make-db db-open
|
||||
[ db set ] [ add-always-destructor ] bi ;
|
||||
: <db-persistence> ( responder db params -- responder' )
|
||||
<pool> db-persistence boa ;
|
||||
|
||||
M: db-persistence call-responder*
|
||||
[ connect-db ] [ call-next-method ] bi ;
|
||||
[
|
||||
pool>> [ acquire-connection ] keep
|
||||
[ return-connection-later ] [ drop db set ] 2bi
|
||||
]
|
||||
[ call-next-method ] bi ;
|
||||
|
|
Loading…
Reference in New Issue