Foros del Web » Programando para Internet » Python »

Problema: script se queda bloqueado

Estas en el tema de Problema: script se queda bloqueado en el foro de Python en Foros del Web. Hola a todos. Mi pregunta es si hay alguna manera de monitorizar los scripts python (en linux) para que si el programa monitor detecta que ...
  #1 (permalink)  
Antiguo 23/02/2012, 04:29
 
Fecha de Ingreso: febrero-2012
Mensajes: 2
Antigüedad: 12 años, 9 meses
Puntos: 0
Problema: script se queda bloqueado

Hola a todos.

Mi pregunta es si hay alguna manera de monitorizar los scripts python (en linux) para que si el programa monitor detecta que un script en python está parado lo cierre y lo vuelva a ejecutar...

El problema lo tengo con un script que he desarrollado en python (una especie de araña web, web crawler o internet bot, como queráis llamarlo). Que busca cierta información que me es relevante en algunas webs que tengo previamente registradas en una base de datos MySQL.

Como las webs se actualizan bastante tengo la necesidad de dejar el script siempre en marcha. El problema viene cuando al rato de estar en marcha, pasada la hora o algo así. Se queda bloqueado, no da ningún error por pantalla, ni nada, simplemente se queda como zombie... no se si me explico.

En fin, gracias por vuestro tiempo.
  #2 (permalink)  
Antiguo 23/02/2012, 08:39
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema: script se queda bloqueado

Pues no creo que puedas hacer un monitoreo de este estilo, al menos no sin modificar el programa original.

El problema parece ser alguna condición de error que no estás capturando, o quizás algún tiempo de espera agotado (timeout). Esas condiciones son internas al programa y no se pueden, en principio, detectar desde fuera.

Yo probaría buscar el problema en vez de ir a por un reinicio del programa.
Una segunda opción sería modificar el programa para que cada cierto tiempo escriba algún valor que otro programa pueda leer (en un archivo, o en una bbdd), y detectar si no ha habido novedades. Pero solamente iría por esta solución si no hubiese forma de encontrar el problema original.


Saludos.
  #3 (permalink)  
Antiguo 24/02/2012, 03:03
 
Fecha de Ingreso: febrero-2012
Mensajes: 2
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Problema: script se queda bloqueado

Cita:
Iniciado por AlvaroG Ver Mensaje
Pues no creo que puedas hacer un monitoreo de este estilo, al menos no sin modificar el programa original.

El problema parece ser alguna condición de error que no estás capturando, o quizás algún tiempo de espera agotado (timeout). Esas condiciones son internas al programa y no se pueden, en principio, detectar desde fuera.

Yo probaría buscar el problema en vez de ir a por un reinicio del programa.
Una segunda opción sería modificar el programa para que cada cierto tiempo escriba algún valor que otro programa pueda leer (en un archivo, o en una bbdd), y detectar si no ha habido novedades. Pero solamente iría por esta solución si no hubiese forma de encontrar el problema original.


Saludos.
Gracias por tu respuesta, creo que el problema es por timeout, tengo problemas de ADSL y el proceso al hacer la conexión con la base de datos (esta en otro servidor) se queda esperando...

Para la segunda opción ¿sería factible hacerlo todo en un mismo programa que este al ejecutarse cree otro proceso (la araña) y el proceso padre monitorice el tiempo de espera del proceso hijo?

saludos
  #4 (permalink)  
Antiguo 24/02/2012, 08:59
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema: script se queda bloqueado

Si es por un timeout, eventualmente deberías recibir una excepción en tu programa, por lo que debería fallar, a menos que en algún punto de tu programa estés capturando excepciones genéricas e ignorándolas (lo cual no es una buena idea).

Otra solución puede ser usar un ORM que se encargue de gestionar la conexión a la base, y que abra una nueva conexión en caso de ser necesario (SQL Alchemy, por ejemplo)


Saludos.

Etiquetas: bloqueado, programa, queda, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:09.