Pergunta

que você recomendaria usando beanstalkd [ http://kr.github.com/beanstalkd/ ] para

processamento assíncrono em PHP?

Eu preciso algum feedback / comentários pros-contras, de qualquer pessoa que tenha usado este lib.

Obrigado,

Foi útil?

Solução

Eu usei Beanstalk na produção, e também durante o teste jogou milhões de mensagens simples através dele - geralmente en-massa, mas o sistema de produção teve mais de 100.000 tarefas colocar através dela até que eu deixou a empresa. Ela ainda pode estar em execução, caso em que seria dezenas de milhões ser agora -. Ou mais, se tivessem estendido seu uso, ainda mais, como eu tinha planejado

Eu gostaria de recomendar, como ele tem uma série de excelentes pontos.

  • tubos nomeados pode ser usado para limitar os trabalhos que estão sendo entregues. I assistir a um tubo com base no nome do host da máquina, o que limitava onde um trabalhador estaria funcionando -. Útil para arquivos enviados que só são armazenados em um servidor específico)
  • Os atrasos podem ser usados ??para eventos set futuras
  • As versões mais recentes do servidor também apoiar bin-logging, dando persistência, embora nunca tenha deixado de funcionar em mim.

A minha primeira tarefa Coloquei através dele era de processamento de imagem - e fazer isso fora do trabalho de um processo Apache / mod_php me permitiu redimensionar imagens maiores sem afetar o servidor (soprar o servidor web). Com uma fila levemente carregado, ele havia criado as miniaturas antes que a página tinha refrescado após o upload.

Existem muitas outras tarefas potenciais que também poderiam ser processados ??de forma assíncrona.

Os únicos problemas que tive foi certificando-se de que os trabalhadores concluídas sem incidentes - ou que quaisquer erros foram apanhados de modo que o trabalho poderia ser 'bury'ed, garantindo assim que o trabalho não foi colocado de volta na fila para ser executado novamente (e ter o acidente trabalhador de novo).

Tendo os trabalhadores também reiniciar a memória clara também pode ser útil como PHP é menos adequado para processos de longa duração.

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