diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2006-12-08 18:47:20 +0000 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2006-12-08 18:47:20 +0000 |
commit | e249e56cb9430668dcbe6b30c62457b8086fbc66 (patch) | |
tree | 3a763f6103d064e8e310e4e31db940aa7724074e /test/perf/wsgi.py | |
parent | c6538b6b3400cbfa939d4e3e8d0f0530e0530e9d (diff) | |
download | sqlalchemy-e249e56cb9430668dcbe6b30c62457b8086fbc66.tar.gz |
- fix to connection pool _close() to properly clean up, fixes
MySQL synchronization errors [ticket:387]
Diffstat (limited to 'test/perf/wsgi.py')
-rw-r--r-- | test/perf/wsgi.py | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/test/perf/wsgi.py b/test/perf/wsgi.py new file mode 100644 index 000000000..7068de1fd --- /dev/null +++ b/test/perf/wsgi.py @@ -0,0 +1,53 @@ +#!/usr/bin/python + +from sqlalchemy import * +import sqlalchemy.pool as pool +import thread +from sqlalchemy import exceptions + +import logging +logging.basicConfig() +logging.getLogger('sqlalchemy.pool').setLevel(logging.INFO) + +threadids = set() +#meta = BoundMetaData('postgres://scott:tiger@127.0.0.1/test') + +#meta = BoundMetaData('mysql://scott:tiger@localhost/test', poolclass=pool.SingletonThreadPool) +meta = BoundMetaData('mysql://scott:tiger@localhost/test') +foo = Table('foo', meta, + Column('id', Integer, primary_key=True), + Column('data', String(30))) + +meta.drop_all() +meta.create_all() + +data = [] +for x in range(1,500): + data.append({'id':x,'data':"this is x value %d" % x}) +foo.insert().execute(data) + +class Foo(object): + pass + +mapper(Foo, foo) + +root = './' +port = 8000 + +def serve(environ, start_response): + sess = create_session() + l = sess.query(Foo).select() + + start_response("200 OK", [('Content-type','text/plain')]) + threadids.add(thread.get_ident()) + print "sending response on thread", thread.get_ident(), " total threads ", len(threadids) + return ["\n".join([x.data for x in l])] + + +if __name__ == '__main__': + from wsgiutils import wsgiServer + server = wsgiServer.WSGIServer (('localhost', port), {'/': serve}) + print "Server listening on port %d" % port + server.serve_forever() + + |