【问题标题】:gevent multiple StreamServer listenersgevent 多个 StreamServer 侦听器
【发布时间】:2011-07-16 09:34:37
【问题描述】:

我有一个守护进程,它有到 handlerSocket 的连接池。我有两种类型的客户端,它们的协议不同。我想设置 2 个侦听器来处理每个协议并在它们之间共享连接池。在扭曲中,这相对容易完成,但在 gevent 中找不到如何做到这一点。 谢谢!

【问题讨论】:

    标签: python gevent


    【解决方案1】:

    StreamServer 的第一个实例可以用 server.start() 启动,第二个用 server2.serve_forever() 启动

    【讨论】:

    • 您还可以在所有服务器之间共享一个“池”对象,以对连接数进行总体限制。
    【解决方案2】:

    除了frx的回答,这里有一个管理多台服务器的类:https://gist.github.com/1008826

    【讨论】:

    • “机架”类非常优雅。 +1
    【解决方案3】:

    我认为问题将来自 StreamServer 的 stop() 方法。 它会杀死池,因此,完成其中一个侦听器将断开两个侦听器的所有连接。 如果这不会吓到您,您可以简单地将相同的 Pool 对象传递给两个 StreamServer,在单独的 greenlet 中运行它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-24
      • 1970-01-01
      相关资源
      最近更新 更多