30/04/2016

PHP pthreads + gearman

Boa noite,

Desenvolvi uma aplicação utilizando PHP e Gearman.
Funciona da seguinte maneira:
Envio uma requisição para o servidor, o qual ira buscar informações em um webservice e fazer o parse do resultado, esse processo pode demorar dependendo da quantidade de requisições para esse webservice.

Para resolver o problema do navegador do cliente não ficar aguardando até esse processo concluir, utilizei o Gearman para trabalhar de forma assíncrona.
Até ai beleza, funcionou perfeitamente. Porém se colocarmos junto 10 clientes fazendo requisições para o servidor vai caindo na fila de processos e só vai tratar a próxima requisição quando concluir a primeira, e isso seria inviável pois pode chegar até 1 dia para poder finalizar toda fila.

Pesquisando, descobri o pthreads uma extensão que permite o php trabalhar em multithread, ou seja, dependendo da capacidade do servidor, ele pode tratar 4 ou mais requisições ao mesmo tempo, assim diminuiria o tempo para concluir a fila de processo.

O problema:
Estou a uma semana tentando compilar no linux o php para funcionar com pthreads, mais como não tenho muito conhecimento, não estou conseguindo chegar no resultado esperado.
A exigência da extensão pthreads seria o PHP trabalhar no modo Thread Safe, no windows consegui habilitar o pthread, mais não consegui o Gearman.
e como a aplicação ficará hospedado em linux, preciso fazer isso funcionar.

Preciso de ideias, ou para contornar o uso do pthreads ou então fazer funcionar esse pthreads e resolver meu problema.

PHP

Wellington Silva