[Cascavel-pm] script cgi de longa execucao

Alceu R. de Freitas Jr. glasswalk3r em yahoo.com.br
Segunda Fevereiro 11 05:54:29 PST 2008


--- Luis Motta Campos <luismottacampos em yahoo.co.uk>
escreveu:

> A essência da idéia é boa, Alceu. Mas call-back, por
> definição, implica 
> que o programa rodando no cliente aceite conexões
> vindas da internet 
> (presumivelmente do lugar certo). Os papéis
> invertidos vão contra o 
> modelo básico de cliente-servidor, neste caso. Mas
> isso é uma questão 
> mais de filosofia do que de computação, eu diria...

A requisição vem do servidor? Isso não é processado
internamente pelo browser? Por exemplo, a função "a"
tem como call back a "b"... o browser executa a função
"a" e quando ela terminar a função "b" é executada?

Isto está ficando meio off-topic... vou consultar o
Google sobre callbacks.

> É mais simples ter um "call forward" - um ajax que
> chama pelo status no 
> servidor de tempos em tempos, de uma maneira
> assícrona, e exibe os 
> resultados do progresso do trabalho para o cliente.

Eu tenho esse "problema" com o Viralator.
Hoje ele gera uma barra de progresso usando um hack
... browsers modernos conseguem montar uma página
mesmo que você não tenha terminado o HTML.

Com isso, dá para começar a imprimir alguma coisa,
como uma barra de progresso, até que o processo lento
termine.

O processo lento, no caso, é o CGI usando LWP para
fazer download de um arquivo. Eu sei que o Apache tem
um módulo para informar o progresso de um upload para
o servidor, mas nesse caso acho que não existe nada já
pronto. E como isso é feito fora do servidor (o
download), acho mais complicado ainda.

Se eu fizer esse esquema de chamada em intervalos
pré-definidos, corro o sério risco de demorar demais
para exibir o status ou simplesmente fazer requisições
demais para o CGI (que já é lento, monolítico e não dá
para usar mod_perl ou FastCGI facilmente).

Ainda assim ainda vou ter o problema de gerenciar o
progresso: vou ter que armazenar esse status em algum
lugar. O mais óbvio seria usar sessões e guardar isso
em memória, mas se memória for escassa posso ter que
apelar para um BD.

[]'s


Alceu Rodrigues de Freitas Junior
--------------------------------------
glasswalk3r em yahoo.com.br
http://www.imortais.cjb.net
-----------------------------------------------------------------------
A well-used door needs no oil on its hinges.
A swift-flowing stream does not grow stagnant.
Neither sound nor thoughts can travel through a vacuum.
Software rots if not used.
These are great mysteries -- The Tao Of Programming, 5.1


      Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento!
http://br.mail.yahoo.com/


Mais detalhes sobre a lista de discussão Cascavel-pm