Comments (3)
I was even able to get the same error by bashing the F5 button. I think this is because of the connection pool cleaner. When I set the cleanup timeout on 0, disabling it, I didn't get any errors.
I'll have to check the connection spawning and cleaning.
from momoko.
I found what triggers the exceptions.
You create a Momoko object in each request handler:
@property
def db(self):
if not self._db:
# Setup the db connection when first accessed instead of at
# initialization so that each child process gets its own
# connection.
self._db = Momoko({
'host': 'localhost',
'database': 'media_archive',
'user': 'ma_db_user',
'password': 'password',
'min_conn': 5,
'max_conn': 20,
'cleanup_timeout': 5
})
return self._db
I think it's because a new Momoko object is created when a new RequestHandler object is created. That means at each request a new Momoko object is created (I think). Your code also triggers the cleanup function a lot. When I refresh the page 5 times, the cleanup function is triggered +5 times.
In my example code it creates a Momoko object per application (per process):
@property
def db(self):
if not hasattr(self.application, 'db'):
self.application.db = Momoko({
'host': 'localhost',
'database': 'media_archive',
'user': 'ma_db_user',
'password': 'password',
'min_conn': 5,
'max_conn': 20,
'cleanup_timeout': 10
})
return self.application.db
I used siege to test it.
siege -b -c 5 -t30s http://localhost:8888/
from momoko.
Ohhh, great, thanks.
from momoko.
Related Issues (20)
- momoko makes IOError in ioloop HOT 3
- Behavior of .execute() wo parameters does not match psycopg2 HOT 1
- code in ConnectionContainer.all_dead conflicts with Pool.putconn HOT 4
- The future returned by Connection.execute will never resolve HOT 1
- self.conns.empty() in Pool.close will not work as expected by big chance HOT 3
- How can I run the first sample of momoko HOT 6
- Pool fails to reconnect when using Unix-domain socket (OperationalError: server closed the connection unexpectedly) HOT 18
- Restarting PostgreSQL sometimes causes Pool.getconn() to hang HOT 5
- Momoko Pool trying to use dead connections HOT 3
- Writing tests for tornado app, which uses momoko for postgres DB. HOT 2
- Cannot add momoko HOT 1
- Please help me figure out why this code freezes forever HOT 8
- Any suggestion on how I'd commit/rollback using a connection pool? HOT 3
- when using RealDictCursor, Pool.register_json error HOT 2
- Typo in connection.py (socker instead of socket) HOT 2
- error if trying to connect pool while Postgress is not online HOT 2
- NamedTupleCursor factory test is executed even if MOMOKO_TEST_HSTORE is disabled HOT 1
- Debian packaging HOT 1
- AttributeError: 'Future' object has no attribute 'set_exc_info' HOT 5
- Not worked with python 3.7 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from momoko.