Tarea Repetible
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Tarea Repetible

on

  • 2,717 views

Desarrollo de un hilo que se ejecuta cada cierto tiempo

Desarrollo de un hilo que se ejecuta cada cierto tiempo

Statistics

Views

Total Views
2,717
Views on SlideShare
2,680
Embed Views
37

Actions

Likes
0
Downloads
17
Comments
0

3 Embeds 37

http://escritoriopaljava.blogspot.com 30
http://jorgepalacio.com 5
http://escritoriopaljava.blogspot.mx 2

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Tarea Repetible Presentation Transcript

  • 1. Tarea Repetible Caso de Estudio
  • 2. Descripción
    • Crear un proceso que se ejecute cada determinado tiempo.
    • El proceso debe ser implementado como un Thread.
  • 3. Definición de Clase de Tarea
    • La clase se llamará ProcesoRepetible
    • Como queremos que sea un hilo en memoria haremos que implemente Runnable.
    • Pondremos el método de operación execute() que hará nuestra operación real.
  • 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. Implementación de run
    • Primero, vamos a configurar nuestra clase para que se ejecute cada determinados minutos, dentro del constructor.
    • Guardaremos los momentos para permitir medir los tiempos.
    • Revisaremos cada cierto tiempo si el tiempo se ha cumplido.
    • Cuando se cumpla llamaremos a execute();
  • 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. Notas
    • ultima se refiere al ultimo momento en que se ejecuto el método execute()
    • El espacio catch solamente ignora el error.
    • Quedaría crear un hilo y arrancarlo dentro de la aplicación.
    • Opcionalmente podemos marcarlo como Daemon.
  • 8. Final
    • Podemos implementar cualquier proceso dentro de execute.
    ProcesoRepetible pr = new ProcesoRepetible(5); new Thread(pr).start(); ProcesoRepetible pr2 = new ProcesoRepetible(10); Thread hilo = new Thread(pr2); hilo.setDaemon(true); hilo.start();