Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 

CGI en Apache con ejecución de horas sin timeout...

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> CGI
Mensaje Mar Ene 15, 2008 5:04 pm
lag_0
Perlero Nuevo
Perlero Nuevo
Registrado: 15 Ene 2008
Mensajes: 4
CGI en Apache con ejecución de horas sin timeout... Responder citando

¡¡¡Buenas!!!
He probado cambiando el "TimeOut" del httpd.conf, pero nada...

Necesito ejecutar un CGI que tarda en terminar entre 2 y 4 horas sin que haga timeout... y al terminar muestre el print que tengo al final...

El tema está en que hace timeout al rato...
¿Alguna idea? ¡¡Gracias!!
Mensaje Mar Ene 15, 2008 5:50 pm
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4034
Ubicación: Valladolid, España
Responder citando

Bienvenido a los foros de Perl en Español, lag_0.

Seguro que el timeout lo provoca la conexión tcp...
Mensaje Mie Ene 16, 2008 1:59 am
lag_0
Perlero Nuevo
Perlero Nuevo
Registrado: 15 Ene 2008
Mensajes: 4
Responder citando

mmm.. pero una conexión TCP si ninguno de los dos, cliente/servidor, la corta, puede mantenerse eternamente sin necesidad de pings/pongs (por decir algo) hasta donde tengo entendido, ¿no?

Gracias por la bienvenida, y un saludo.
Mensaje Mie Ene 16, 2008 6:02 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4034
Ubicación: Valladolid, España
Responder citando

¿De cuánto rato estamos hablando que pasa antes de caer? ¿30 segundos, 60 segundos?
Mensaje Mie Ene 16, 2008 11:26 am
monoswim
Vive para Perl en Español
Vive para Perl en Español
Registrado: 18 Nov 2003
Mensajes: 712
Ubicación: Buenos Aires
Responder citando

Si va trabajar durante tanto tiempo, ¿por qué hacerlo de la forma normal?

Que el proceso al empezar ya le dé una respuesta al navegador diciendo que ya empezó el proceso y que se vuelva a conectar en unas horas... hacerlo de modo background, no sé si me explico...

Y que el resultado se guarde en un archivo; luego el usuario solo baja el archivo del proceso realizado...

Espero que les sirva.

Saludos
Mensaje Vie Ene 18, 2008 4:15 am
lag_0
Perlero Nuevo
Perlero Nuevo
Registrado: 15 Ene 2008
Mensajes: 4
Responder citando

explorer escribió:
¿De cuánto rato estamos hablando que pasa antes de caer? ¿30 segundos, 60 segundos?

Aguanta aproximadamente 30 minutos.

Respecto al otro método... Estaré en las mismas, porque la ejecución del CGI la arrancará Apache y aún que el navegador cierre la conexión Apache matará el proceso de Perl así que...

¿No hay forma @_@?
Muchas gracias
Mensaje Vie Ene 18, 2008 4:30 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4034
Ubicación: Valladolid, España
Responder citando

Podrías enviar algo de información cada poco tiempo.

Por ejemplo, yo en un motor de búsqueda, como en algunas ocasiones tarda bastantes segundos en ejecutarse. Para que el usuario no piense que se ha cortado, envío cada cierto número de cálculos un gráfico de una flecha '>', imitando una barra de progreso.
Mensaje Vie Ene 18, 2008 5:35 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4034
Ubicación: Valladolid, España
Responder citando

Aquí tienes un hilo que comenta sobre este problema. Comentan que una posible solución es la comentada en el artículo Watching long processes through CGI del año 2002.

La idea es: el cgi arranca un subproceso que queda en segundo plano, ejecutando el proceso largo y devuelve una página al usuario con una orden de refresco (automático) cada cierto número de segundos. Este segundo cgi (que en el listado es realmente el mismo programa, abarcando las dos funcionalidades) refresca la página cada pocos segundos mirando a ver si el proceso terminó.
Mensaje Lun Ene 21, 2008 11:09 am
lag_0
Perlero Nuevo
Perlero Nuevo
Registrado: 15 Ene 2008
Mensajes: 4
Responder citando

Gracias!! Miraré con más detalle
Publicar nuevo tema   Responder al tema    Foros de discusión -> CGI Todas las horas son GMT - 6 Horas
Página 1 de 1



Powered by phpBB © 2001, 2005 phpBB Group