0
我有一个Twisted Klein应用程序,需要在我们的部署环境中监听多个端口。随着烧瓶我会用gunicorn部署,似乎你可以运行Klein in a wsgi container,但它会击败它的异步性质。我的Twisted Klein应用程序如何在多个端口上侦听?
我有一个Twisted Klein应用程序,需要在我们的部署环境中监听多个端口。随着烧瓶我会用gunicorn部署,似乎你可以运行Klein in a wsgi container,但它会击败它的异步性质。我的Twisted Klein应用程序如何在多个端口上侦听?
受这个关于Twisted listening on multiple ports的问题的启发我深入研究了Klein app.run()方法,如果您在调用应用程序运行之前只设置了另一个Twisted端点,它似乎就可以工作。任何洞察这是否是正确的方法,将不胜感激。
from twisted.web.server import Site
from twisted.internet import reactor, endpoints
...
admin_endpoint = "tcp:port={0}:interface={1}".format(8888, '0.0.0.0')
endpoints.serverFromString(reactor, admin_endpoint).listen(Site(app.resource()))
...
app.run('0.0.0.0', port=9999)
如果设计有小心和精确,单个''klein''应用可以扩展同样以及运行3或4''flask''应用一个gunicron过程。你的例子看起来不错,但请记住,这将是一个单线程应用程序。 Gunicorn将wsgi对象分成多个独立的进程,这可以让你进行扩展。获得类似结果的一种方法是使用负载均衡器(''nginx''有一个内置的)并结合不同端口上的多个''klien''进程。是否有一个特殊问题让你倾向于电子枪? –
对,我仍然会通过运行klein进程的多个副本来进行扩展,每个副本都有自己的一对端口。 – patricksurry