Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Timer (Poleo)

Estas en el tema de Timer (Poleo) en el foro de Java en Foros del Web. Hola... Nuevamente yo compañeros, pero es que la verdad ya intente lo mas que pude y no consigo resultado positivo alguno, además que la documentación ...
  #1 (permalink)  
Antiguo 29/04/2015, 16:43
 
Fecha de Ingreso: marzo-2015
Mensajes: 45
Antigüedad: 9 años, 1 mes
Puntos: 2
Timer (Poleo)

Hola...

Nuevamente yo compañeros, pero es que la verdad ya intente lo mas que pude y no consigo resultado positivo alguno, además que la documentación que encuentro sigue sin serme muy clara todavía para mis necesidades, espero explicarme lo mas posible...

Verán, tengo una aplicación de java lista para ejecutarse desde línea de comando, dicha aplicación tiene como objetivo consultar a base de datos, crear directorios por cada registro de la base así como crear archivos de texto plano dentro de los directorios previamente creados, sin embargo, dicha aplicación no la ejecuto directamente desde consola sino mas bien es ejecutada mediante otra aplicación java a través de un timer, el objetivo del timer es ejecutarse cada 10 minutos y cuando termine de ejecutarse el .jar que es llamado pasa a un estado de pausa para posteriormente cuando sean los 10 minutos, ejecutarse nuevamente. No obstante, mi problema no radica en lograr hacer este proceso, mas bien se enfoca que cuando ejecuto mi .jar para llamar al siguiente veo que la creación de las carpetas es sumamente lenta comparada a como debería crearlas, además de que el contenido por cada carpeta de acuerdo a la ejecución individual del archivo (Ejecute el archivo que contiene toda el código "rudo" directamente) deben ser un total de 8 archivos y veo que me crea el doble de archivos

A continuación, proporciono mi código correspondiente al poleo...

Código Java:
Ver original
  1. package com.comerciales.canada.main;
  2.  
  3. import java.util.Timer;
  4. import java.util.TimerTask;
  5.  
  6. public class PoleoCarpeta {
  7.     Timer timer;
  8.  
  9.     public PoleoCarpeta() {
  10.         timer = new Timer();
  11.         timer.schedule(new PoleoCarpetaTask(),0,60000);
  12.     }
  13.  
  14.     public void timerSleep(){
  15.         System.out.println("Poleo PAUSADO");
  16.         try {
  17.             Thread.sleep(60000);
  18.             timer.cancel();
  19.             timer.purge();
  20.             new PoleoCarpeta();
  21.         } catch (InterruptedException e) {
  22.             e.printStackTrace();
  23.         }
  24.     }
  25.    
  26.     class PoleoCarpetaTask extends TimerTask {
  27.         public void run() {
  28.             System.out.println("Poleo REANUDADO");
  29.             try {
  30.                 Runtime.getRuntime().exec("java -jar C:\\Legada\\ProyectoComercialesCarga.jar");
  31.                 timerSleep();
  32.             } catch (Exception e) {
  33.                 e.printStackTrace();
  34.             }
  35.         }
  36.     }
  37.  
  38.     public static void main(String args[]) {
  39.         System.out.println("Poleo COMENZADO");
  40.         new PoleoCarpeta();
  41.     }
  42. }

No estoy seguro si este fallo en especial (Creación de carpetas lento y duplicación de archivos) corresponde al timer o bien a la programación que se encuentra en el otro archivo.

Sin mas que comentar, agradezco su tiempo y pronta respuesta. Que tengan un excelente día...

P.D. Si es necesario el otro archivo con gusto comparto el código.
  #2 (permalink)  
Antiguo 30/04/2015, 01:41
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: Timer (Poleo)

Buenas,

Creo que das muchas vueltas para hacer algo que se puede conseguir facilmente con java.util.Timer.scheduleAtFixedRate

http://www.tutorialspoint.com/java/u...rate_delay.htm

Puedes rehacer tu implementacion y ver si se sigue reproduciendo? Si es asi, lo mas probable es que el problema este en el jar.


Un saludo
__________________
If to err is human, then programmers are the most human of us
  #3 (permalink)  
Antiguo 30/04/2015, 09:15
 
Fecha de Ingreso: marzo-2015
Mensajes: 45
Antigüedad: 9 años, 1 mes
Puntos: 2
Respuesta: Timer (Poleo)

Hola...

Gracias, Profesor_Falken... Supongo que debo empaparme de la documentación para comprender con exactitud las tareas programadas, aunque siempre me han confundido la creación de Threads, Timer, TimerTask, etc...

Realizare algunas pruebas rigurosas para ver con exactitud del porque del resultado, sin embargo, la solución al problema del Timer, es excelente.

Gracias por la respuesta, tema solucionado.

Etiquetas: programa
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 08:51.