2011-02-22 15 views
5

Mevcut bir vişne uygulamasına sahibim ama bilmek istiyorum, eğer bunu gevent wsgi sunucusunda çalıştırmak mümkün ise. Yapabileceğimi hayal edebiliyorum, ancak bir Linux sunucusuna erişimimi kontrol etmek için yokluğumu test etme şansım var.gevent wsgi sunucusunda çalışan vişne uygulaması

Bu görüntünün altındayım, çünkü her bir taraf wsgi spec.

Bunu deneyen var mı?

import cherrypy 
from gevent import wsgi 

class Root(object): 
    def index(self): 
     return "hi!" 
    index.exposed = True 

app = cherrypy.tree.mount(Root(), '/') 
wsgi.WSGIServer(('', 8088), app).serve_forever() 

cevap

2

Bu örnek çalışıyor:

Ben bir örnek aşağıdaki gibi görünecektir sanırım. Eminim, freenode'daki #gevent herhangi bir kurulum sorununda size yardımcı olacaktır.

+0

Evet, kiraz ağacı ve uygulama nesnelerinin hepsinin beklendiği gibi çalışması gereken bir _callable_ içerdiğini doğruladım. Uzak bir test platformu için de freenode'u kontrol edeceğim. Şerefe! – deecodameeko

3

Bu örnek, cherrypy işleyicilerinde greenlet anahtarıyla karşılaşıncaya kadar çalışacaktır! Bu, işleyicilerin içinde eşzamansız iletişim için gevent kullanırsanız, bu başarısız olur.

# Create request and response object (the same objects will be used 
# throughout the entire life of the webserver, but will redirect 
# to the "serving" object) 
request = _ThreadLocalProxy('request') 
response = _ThreadLocalProxy('response') 

o üzerine yazacaktır yanındaki işleme bir istek ve gevent anahtarları duraklarsanız içerik uzunluğu: cherrypy/__ init__.py:~350 içinde bulunan iç

cherrypy tepkisi ve başlıklarını saklamak için küresel nesnesi kullanır global nesne başlığı ve istemci tarafında garip hatalarla karşılaşacaksınız.

+0

Gerçekten. Birisi greenlet kullanmak istiyorsa, threadlocal "serving" nesnesini greenlet-local ile değiştirmelidir. – fumanchu