m2wsgi

Tela Software:
m2wsgi
Detalhes de Software:
Versão: 0.5.2
Data de upload: 15 Apr 15
Revelador: Ryan Kelly
Licença: Livre
Popularidade: 43

Rating: nan/5 (Total Votes: 0)

m2wsgi é um módulo Python que fornece um manipulador de gateway WSGI para o servidor web Mongrel2, permitindo fácil implantação de aplicativos Python em Mongrel2 & nbsp;. Você também pode encontrar as suas classes de suporte útil para o desenvolvimento de manipuladores não WSGI em Python.

Uso de linha de comando

A maneira mais simples de usar este pacote é como um lançador de linha de comando:
python -m tcp m2wsgi dotted.app.name: //127.0.0.1: 9999
Isto irá ligar a Mongrel2 na porta solicitação especificada e começar o tratamento dos pedidos, passando-os através do app WSGI especificado. Por padrão, você vai ter um único segmento de trabalho lidar com todos os pedidos; aumentar o número de threads, exemplo:
python -m m2wsgi --num-threads = 5 dotted.app.name tcp: //127.0.0.1: 9999
Ou se threads não são sua coisa, use eventlet para embaralhar os bits em torno da seguinte forma:
python -m m2wsgi --io = eventlet dotted.app.name tcp: //127.0.0.1: 9999
Estou interessado em adicionar suporte para outros módulos de IO como GEvent; contribuições bem-vindos.
Programático Uso
Se você tiver necessidades mais complicadas, você pode usar m2wsgi dentro de sua aplicação. A classe principal é 'WSGIHandler ", que fornece uma interface simples servidor. O equivalente do uso acima da linha de comando é:
de m2wsgi.base WSGIHandler importação
handler = WSGIHandler (my_wsgi_app, "tcp: //127.0.0.1: 9999")
handler.serve ()
Para um controle mais preciso sobre a ligação entre o manipulador e Mongrel2, criar seu próprio objeto de conexão:
de m2wsgi.base WSGIHandler importação, Conexão
conn = Connection (send_spec = "tcp: //127.0.0.1: 9999",
& Nbsp; recv_spec = "tcp: //127.0.0.1: 9999",
& Nbsp; send_ident = "9a5eee79-dbd5-4f33-8fd0-69b304c6035a")
handler = WSGIHandler (my_wsgi_app, conn)
handler.serve ()
Não temos já um destes?
Vários na verdade:
& Nbsp; * https://github.com/berry/Mongrel2-WSGI-Handler
& Nbsp; * https://bitbucket.org/dholth/mongrel2_wsgi
Nenhum deles totalmente satisfeitas as minhas necessidades. Em particular, este pacote tem suporte transparente para:
& Nbsp; * fragmentada codificação resposta
& Nbsp; * "carregamento assíncrono" de grandes massas de solicitação
& Nbsp; * backends IO conectáveis ​​(eg eventlet, GEvent)
Ele também é projetado a partir do solo até especificamente para Mongrel2. Isso significa que ele recebe uma grande quantidade de funcionalidades de graça, e o código é mais simples e mais leve, como resultado.
Por exemplo, não há gestão explícita de uma fila threadpool e pedido que você pode encontrar em eg o servidor CherryPy. Em vez disso, você simplesmente iniciar tantos tópicos que você precisa, tê-los todos se conectar ao mesmo soquete do processador, e mongrel2 (via ZMQ) automaticamente irá carregar-equilibrar os pedidos a eles.
Da mesma forma, não há nenhum suporte explícito para recarregar quando o código é alterado. Basta matar o velho manipulador e iniciar um novo. Se você estiver usando UUIDs manipulador fixos então ZMQ irá garantir que a entrega acontece graciosamente

Requisitos :.

  • Python

Limitações :

  • Ao executar múltiplos threads, ctrl-C não limpa sair do processo. Parece que os tópicos de fundo ficar preso em um recv bloqueio ().
  • O algoritmo de balanceamento de carga ZMQ é ganancioso round-robin, o que não é o ideal. Por exemplo, ele pode agendar vários pedidos rápidas para o mesmo segmento como uma lenta, fazendo-os esperar, mesmo que outros segmentos se tornam disponíveis. Eu estou trabalhando em um adaptador ZMQ que pode fazer algo melhor.

Outro software de desenvolvedor Ryan Kelly

Comentário para m2wsgi

Comentários não encontrado
Adicionar comentário
Ligue imagens!