Dando continuidade ao post anterior vamos criar uma nova funcionalidade no sistema para validar o funcionamento do Gearman. Vamos criar uma página para upload de imagens que delega a tarefa de criar as imagens de thumbs para o worker realizar em background. Dessa forma o cliente fica livre para executar outras tarefas enquanto aguarda o worker do Gearman finalizar os trabalhos colocados na fila.
Feature de Upload
Criar o controller application/controllers/jobs.php que controla a interface de upload e que delega o trabalho para o worker processar em background.
Criar as views e partials que compõe a interface html para fazer o upload e listagem das imagens
application/views/jobs/index.php
application/views/jobs/_photo.php
application/views/jobs/_form_upload.php
Resultado Final
Após o upload de uma imagem a aplicação redireciona para a mesma página que lista as imagens do diretório e libera o navegador. O processo de redimensionamento das imagesn é enviado para a lista de jobs do Gearman e realizada pelos workers de forma assíncrona.
Para visualizar as imagens que já foram redimensionadas basta fazer um reload da página.
Referências:
http://gearman.org/
http://www.phpclasses.org/blog/post/108-Distributing-PHP-processing-with-Gearman.html
http://imasters.com.br/artigo/21385/php/processamento-distribuido-em-php-utilizando-gearman-parte-1
http://pecl.php.net/package/gearman
Nenhum comentário:
Postar um comentário