cherrypy + flup = multithreading?

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Volvic
User
Beiträge: 30
Registriert: Donnerstag 14. Juni 2007, 05:18

Donnerstag 28. Juni 2007, 18:41

hallo

ich möchte cherrypy und flup und lighttpd (Win32/Cygwin) als grundlage für meine homepage verwenden. im cherrpy wiki (http://tools.cherrypy.org/wiki/FastCGIWSGI) gibt es folgenden beispiel code:

Code: Alles auswählen

#!/usr/bin/python

import cherrypy

class HelloWorld:
    """ Sample request handler class. """
    def index(self):
        return "Hello world!"
    index.exposed = True

# init cp
app = cherrypy.tree.mount(HelloWorld())
cherrypy.engine.start(blocking=False)

# use flup to start wsgi server
from flup.server.fcgi import WSGIServer
WSGIServer(app).run()
alles schön und gut, funktioniert perfekt. was ich mich aber nun frage wie sähe es aus wenn ich möchte das für jeden user 1 thread gestartet wird oder eine art threadpool bereit steht mit z.b. 10 worker threads? bzw. lohnt sich multithreading überhaupt?

mit freundlichen grüßen
- Volvic
EnTeQuAk
User
Beiträge: 986
Registriert: Freitag 21. Juli 2006, 15:03
Wohnort: Berlin
Kontaktdaten:

Freitag 29. Juni 2007, 06:52

Wie das mit FastCGI direkt geht, kann ich dir nicht sagen.

Der CherryPyWSGIServer jedoch beherrscht es, threading pools anzulegen.

Hierzu einfach das Argument ''numthreads=XX'' an den WSGIServer übergeben. 'XX' steht hierbei für die angelegten Workerthreads.
Standardmäßig sind hier 10 eingestellt.


Vielleicht hilft dir das weiter.

Jedoch (meine Ansicht) benötigt man das nicht so sehr. Ich persönlich habe jedenfalls in solchen Einstellungen noch nie rumspielen müssen.


MfG EnTeQuAk
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Freitag 29. Juni 2007, 07:13

Volvic hat geschrieben:wie sähe es aus wenn ich möchte das für jeden user 1 thread gestartet wird oder eine art threadpool bereit steht mit z.b. 10 worker threads?
Hallo Volvic!

Ich glaube, dass sich der Webserver, in deinem Fall also "lighttpd" darum kümmert. Das ist jetzt nur so ein Gefühl und ich habe mich auch noch nicht um Informationen diesbezüglich gekümmert.

Das könnte evt. so ablaufen, dass der Webserver mehrere CherryPy-Applikationen in je einem eigenen Thread startet. Wenn das so ist, dann lässt sich das sicher über den "lighttpd" einstellen.

Vielleicht findest du Hinweise darauf in der lighttpd-Dokumentation.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Antworten