Pergunta

Em Python, se eu quero meu servidor para bem escala CPU-sábio, eu, obviamente, precisa processos múltiplas desova. Eu queria saber o que é melhor (usando trançado):

A) O Process Manager (aquele que detém as conexões de soquete reais) dá pacotes recebidos em uma fila compartilhada (aquele do módulo multiprocessamento), e dos trabalhadores processos puxar os pacotes fora da fila, processá-los e enviar o resultados de volta para o cliente.

B) O processo de gerente (aquele que segura as conexões de soquete reais) lança um fio diferidos e, em seguida, chama a função de aplicar () no pool de processos. Uma vez que o resultado retorna do processo de trabalho, o gerente envia a volta resultado para o cliente.

Em ambas as implementações, os processos de trabalho usar pools de threads para que eles possam trabalhar em mais de um pacote de uma vez (uma vez que haverá um monte de consulta de banco de dados).

Foi útil?

Solução

Eu acho que B é problemática. O fio só seria executado em uma CPU, e mesmo se ele é executado um processo, o segmento ainda está em execução. Um pode ser melhor.

É melhor para tentar medir tanto em termos de tempo e ver qual é mais rápido e qual escalas bem. No entanto, vou reiterar o que eu duvido que B irá escala bem.

Outras dicas

Eu acho que "A" é a resposta que você quer, mas você não tem que fazê-lo sozinho.

Você já considerou ampola ?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top