13

BaseHTTPServer.HTTPServer'ın SocketServer.ThreadingTCPServer gibi çok iş parçacıklı olmasını sağlamanın bir yolu var mı?Python - BaseHTTPServer.HTTPServer Concurrency & Threading

+0

Olmanız için bir nedeniniz var mı? – jakebman

+3

Çünkü eşzamanlılığı halledebilen basit bir web sunucusu istiyorum? Ayrıca web.py, cherrypy veya bunun gibi bir şey gibi bir çerçeve istemiyorum/istemiyorum, sadece BaseHTTPServer gibi çok eşzamanlı istekleri işleyebilecek gerçekten basit bir web sunucusu istiyorum. – Ian

+1

burada bir referanstır: [link] (http://www.doughellmann.com/PyMOTW/BaseHTTPServer/index.html#module-BaseHTTPServer), threading, forking – sfossen

cevap

19

Sadece o

olsa performansta çok yardımcı olmayacaktır :) çoklu işlemli yapmak için bu sınıfların her ikisi kullanılarak parçacığı mixin kullanabilirsiniz, ancak en az okuyuculu bu.

from SocketServer import ThreadingMixIn 
from BaseHTTPServer import HTTPServer 

class MultiThreadedHTTPServer(ThreadingMixIn, HTTPServer): 
    pass 
+2

Bu, * a * çözümüne benziyor ... ancak yavaşça bir şey kullanmadan kendi sunucumu yazmaya karar vermeyi tercih ediyorum .. :( – Ian

+0

Eğer Python'u barındıran bir site arıyorsanız, nginx gibi mevcut bir http sunucusunu kullanmıyorsunuz. apache veya lighttpd? Performansa gelince, iş parçacığı, birden çok eşzamanlı bağlantıyı engellemeden yapmanıza izin verecektir, böylece birden fazla eşzamanlı istek durumunda daha hızlı olacaktır.Ama yine de sadece 1 işlemci kullanacaktır – Wolph

+1

Bunun için gelen istekleri (http veya bazı benzer biçimler) alan bir istek sunucusunu yapıyorum ve isteğinize göre bir eylemi yapıyorum – Ian