[Twisted-web] ConnectionPool problem
Craig H. Anderson
craig at coot.net
Mon Jun 14 13:18:36 MDT 2004
What am I doing wrong. The call back is never run.
# twisted.web server
from twisted.application import internet, service
from twisted.web import static, server, script
from twisted.python import components
root = static.File("/CraigSvn/Code/Python/twistedWebTest/trunk/")
#root.ignoreExt(".rtl")
root.processors = {'.rtl': script.ResourceTemplate,
'.rpy': script.ResourceScript
}
application = service.Application('web')
site = server.Site(root)
sc = service.IServiceCollection(application)
ii = internet.TCPServer(8080, site)
ii.setServiceParent(sc)
#-------------------------
from twisted.web import resource, server
from gcs.htmllib import sessionData
from twisted.enterprise import adbapi
import time
class MyResource(resource.Resource):
isLeaf = 1
#Package twisted :: Package python :: Module failure :: Class Failure
def dbErrBack(self,failure):
html = "<html><head>" \
"<head><title>GCS database exercise</title></head>" \
"<body><h1>GCS database exercise</h1>"
self.request.write(html)
self.request.write('Error<br></body></html>')
self.request.finish()
return None
#def dbThread(self,txn,arg):
def dbThread(self,txn,arg):
qry = 'select top 1 recordid from ActiveLeads'
txn.execute(qry)
rslt = txn.fetchall()
return rslt[0][0]
def finish(self,arg):
html = "<html><head>" \
"<head><title>GCS database exercise</title></head>" \
"<body><h1>GCS database exercise</h1>"
self.request.write(html)
self.request.write('<br></body></html>')
self.request.finish()
def render_GET(self, request):
return self.render_it(request)
def render_it(self,request):
print 'render_it'
self.request = request
self.connData = ('DENVERORACLE','GcsProduction','sa','mushroom')
self.connectionStr = "Provider=sqloledb;" \
"Data Source=%s;" \
"Initial Catalog=%s;" \
"User Id=%s;" \
"Password=%s" \
% self.connData
dbpool = adbapi.ConnectionPool('adodbapi',self.connectionStr)
dfrd = dbpool.runInteraction(self.dbThread,None)
dfrd.addCallback(self.finish,self)
dfrd.addErrback(self.dbErrBack,None)
print 'render_it. about to return dbpool running %s' % str(dbpool.running)
return server.NOT_DONE_YET
def render_POST(self, request):
return self.render_it(request)
resource = MyResource()
More information about the Twisted-web
mailing list