Tarea Repetible

2,086 views

Published on

Desarrollo de un hilo que se ejecuta cada cierto tiempo

Published in: Technology, Travel
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,086
On SlideShare
0
From Embeds
0
Number of Embeds
46
Actions
Shares
0
Downloads
19
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Tarea Repetible

  1. 1. Tarea Repetible Caso de Estudio
  2. 2. Descripción <ul><li>Crear un proceso que se ejecute cada determinado tiempo. </li></ul><ul><li>El proceso debe ser implementado como un Thread. </li></ul>
  3. 3. Definición de Clase de Tarea <ul><li>La clase se llamará ProcesoRepetible </li></ul><ul><li>Como queremos que sea un hilo en memoria haremos que implemente Runnable. </li></ul><ul><li>Pondremos el método de operación execute() que hará nuestra operación real. </li></ul>
  4. 4. public class ProcesoRepetible implements Runnable { public void run() { //De momento no hace nada } public void execute() { //Aquí dentro definiriamos nuestra operación System.out.println(“Mensaje a consola”); } }
  5. 5. Implementación de run <ul><li>Primero, vamos a configurar nuestra clase para que se ejecute cada determinados minutos, dentro del constructor. </li></ul><ul><li>Guardaremos los momentos para permitir medir los tiempos. </li></ul><ul><li>Revisaremos cada cierto tiempo si el tiempo se ha cumplido. </li></ul><ul><li>Cuando se cumpla llamaremos a execute(); </li></ul>
  6. 6. private int minutos; //Ultimo momento de ejecución Date ultima = new Date(); public ProcesoRepetible(int minutos) { this.minutos = minutos; } public void run() { while(true) { try { Date ahora = new Date(); long dif = ahora.getTime() – ultima.getTime(); if(dif >= (minutos * 60000)) { execute(); ultima = ahora; } Thread.sleep(minutos * 60000); } catch(Exception e) { ; } } }
  7. 7. Notas <ul><li>ultima se refiere al ultimo momento en que se ejecuto el método execute() </li></ul><ul><li>El espacio catch solamente ignora el error. </li></ul><ul><li>Quedaría crear un hilo y arrancarlo dentro de la aplicación. </li></ul><ul><li>Opcionalmente podemos marcarlo como Daemon. </li></ul>
  8. 8. Final <ul><li>Podemos implementar cualquier proceso dentro de execute. </li></ul>ProcesoRepetible pr = new ProcesoRepetible(5); new Thread(pr).start(); ProcesoRepetible pr2 = new ProcesoRepetible(10); Thread hilo = new Thread(pr2); hilo.setDaemon(true); hilo.start();

×