Java - como parar un proceso de parseado?

 
Vista:

como parar un proceso de parseado?

Publicado por Victor (2 intervenciones) el 08/07/2004 17:28:11
Hola,
alguien sabria decirme como puedo detener el siguiente proceso. Pasa que cuando intento parsear si la web no esta disponible se queda bloqueado y no lanza excepcion ni nada. El codigo es el siguiente:
try{
Parser parser = new Parser (nameUrl);
TextExtractingVisitor visitor = new TextExtractingVisitor ();
parser.visitAllNodesWith(visitor);
String contenido = visitor.getExtractedText();
}catch(Exception e){...}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:como parar un proceso de parseado?

Publicado por Ani Alamo (26 intervenciones) el 09/07/2004 10:39:57
Prueba este proceso incluyéndolo dentro de un thread y dale un tiempo prudencial a este thread para que siga con vida. Si pasado ese tiempo, unos 20 segundos por ejemplo no retorna un resultado entonces finaliza este thread.

Un ejemplo sencillo sería así:

/***
* Clase que invoca al Thread
*/
long cte_TiempoRpta = 20000;
miThread t1 = new miThread(conUrl);
t1.start();
long ini = System.currentTimeMillis();
while (true)
{
long fin = System.currentTimeMillis();
if ((fin - ini < cte_TiempoRpta) && t1.isAlive()) {
//aqui no hagas nada
} else if ((fin - ini >= cte_TiempoRpta) && t1.isAlive()) {
break;
} else if (!t1.isAlive()) {
break;
}
}
String sRetorno = t1.sContenido;
t1.interrupt();



/***
* Thread que invoca a la URL para hacer parsing
*/

public class miThread extends Thread
{
public String sContenido = null;
private String nameUrl = "";

public miThread (String nameUrl) {
this.nameUrl = nameUrl;
}

public void run()
{
try {
sleep(0);
Parser parser = new Parser (nameUrl);
TextExtractingVisitor visitor = new TextExtractingVisitor ();
parser.visitAllNodesWith(visitor);
sContenido = visitor.getExtractedText();
} catch (Exception e) { .... }
}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar