segunda-feira, 5 de dezembro de 2011

Codeigniter 2 + Backgroud Job + Gearman


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