Probleme mit Twisted und .RPY-Dateien

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Gast

Hi
ich habe einen HTTP-Server mit twisted geschrieben.
im normalfall werden alle anfragen nacheinander im mainthread ausgeführt.
hab es in der zwischen zeit aber hinbekommen, das die anfragen in bis zu 10 threads bearbeitet werden.
jetzt habe ich versucht, das ganze so umzubauen, das es auch mit den .RPY-Dateien läuft.
wenn ich nun 10 anfragen die jeh 10 sek benötigen, werden erst 4 parallel ausgeführt, danach nurnoch jehweils 2.
es laufen allerdings insegsamt 11 thread (mainthread + 10 threads für anfragen)

kann mir irgendjemand weiterhelfen??

hier mein quellcode:

SERVER.PY
from twisted.web import server, resource, static, script
from twisted.internet import reactor
from twisted.internet.threads import deferToThread
from twisted.python import threadable
import thread
import time
threadable.init()
root = static.File("c:/temp")
root.processors = {'.rpy' : script.ResourceScript}
reactor.listenTCP(80, server.Site(root))
print "Running"
reactor.run()

TEST.RPY
from twisted.web import server, resource
from twisted.internet.threads import deferToThread, defer
from twisted.internet import reactor
import thread
import time
class Rendering(resource.Resource):
def render(self, request):
print "request..."
d = deferToThread(self.myRun, (request))
d.addCallback(self.addCallback)
return server.NOT_DONE_YET
def myRun(self, request):
time.sleep(10)
return (str(thread.get_ident()),request)
def addCallback(self, params):
result, request = params
request.write(result)
request.finish()
resource = Rendering()
Antworten