Planificar tareas en JBoss

En este tutorial os enseñaremos a planificar tareas periódicas con JBoss

PLANIFICAR TAREAS EN JBOSS.

Muchas veces nos surge la necesidad de planificar tareas en
nuestras aplicaciones y que se ejecuten de manera recursiva. Tenemos
gran cantidad de posibilidades para realizar algo similar:

  • Utilizar alguna utilidad de sistema operativo que invoque
    algún script: (cron de unix, Tareas planificadas en windows)

  • Java nos provee también dos clases para realizar
    tareas de este tipo: Timer y TimerTask.

  • Etc…

Os voy a enseñar otra forma de planificar tareas en Jboss.
Para ello haremos uso de la clase
org.jboss.varia.scheduler.Scheduler.

Para el ejercicio estoy usando: Jboss
4.0.4

Lo primero que haremos es crearnos el
fichero jboss-service.xml, porque
vamos a desplegar la tarea como un servicio.

Planificaremos una tarea dentro de él:

<server>

<mbean code=”org.jboss.varia.scheduler.Scheduler” name=”:service=Scheduler”>

<attribute name=”StartAtStartup”>true</attribute>

<attribute name=”SchedulableClass”>com.autentia.TareaPlanificada</attribute>

<attribute name=”InitialStartDate”>NOW</attribute>

<attribute name=”SchedulePeriod”>60000</attribute>

<attribute name=”InitialRepetitions”>5</attribute>

</mbean>

</server>

En el fichero hemos configurado una
tarea con los siguientes parámetros:

  • StartAtStartup:
    true indica que queremos que sea inicializada por el servidor. False
    indica que debe ser forzado su inicio.

  • SchedulableClass:
    clase que realiza la funcionalidad periódicamente. Esta clase
    debe implementar el interfaz org.jboss.varia.scheduler.Schedulable
    que define el método:

    • public
      void perform(Date fecha, long arg1)

Éste
será el método que se invocará recursivamente.

  • InitialStartDate:
    Fecha planificada para la primera invocación. NOW indica +1
    segundo desde la fecha actual.

  • ScheduledPeriod:
    frecuencia con la que Scheduler invocará a la clase
    Schedulable en milisegundos. En nuestro caso, cada minuto.

  • InitialRepetitions.
    Número de repeticiones de la tarea. -1 indica que la tarea se
    ejecutará hasta que el servidor se pare.

Una
vez configurado el fichero, simplemente, crearemos la clase
Schedulable:

public class TareaPlanificada implements Schedulable {


	public void perform(Date fecha, long veces) {


	System.out.println(“Me invocan a las:” + fecha);

	System.out.println(“Todavía me deben ejecutar :” + veces + ” veces” );


	}

}

Ahora simplemente, generamos el
fichero planificador.sar que será un fichero comprimido
con la siguiente estructura:

  • META-INF/jboss-service.xml

  • com/autentia/TareaPlanificada.class

Una vez generado el ficchero, lo
desplegamos en la ruta de despliegue de nuestro Jboss (por defecto
<RUTA_INSTALACION_JBOSS>/server/default/deploy)

El resultado, será el
siguiente:

17:51:44,750
INFO [STDOUT] Me invocan a las:Tue Jun 06 17:51:44 CEST 2006

17:51:44,750
INFO [STDOUT] Todavía me deben ejecutar :4 veces

17:52:44,718
INFO [STDOUT] Me invocan a las:Tue Jun 06 17:52:44 CEST 2006

17:52:44,718
INFO [STDOUT] Todavía me deben ejecutar :3 veces

17:53:44,718
INFO [STDOUT] Me invocan a las:Tue Jun 06 17:53:44 CEST 2006

17:53:44,718
INFO [STDOUT] Todavía me deben ejecutar :2 veces

17:54:44,718
INFO [STDOUT] Me invocan a las:Tue Jun 06 17:54:44 CEST 2006

17:54:44,718
INFO [STDOUT] Todavía me deben ejecutar :1 veces

17:55:44,718
INFO [STDOUT] Me invocan a las:Tue Jun 06 17:55:44 CEST 2006

17:55:44,718
INFO [STDOUT] Todavía me deben ejecutar :0 veces

¿ Fácil verdad ?…pues ya está hecho, ahora
a darle chicha al método perform de nuestra clase Schedulable.
Si necesitas ayuda, ya sabes…. http://www.autentia.com

Comentarios

Un comentario

  1. Hola, gracias por la info, muy buena expicación. En lo único que me confundo es en la parte de generar el .sar, dentro de la carpeta deploy del jboss lo que veo son folders .sar que dentro tienen un folder META-INF y otro folder que es como una copia de la ruta donde está la clase, pero eso de un fichero comprimido no lo entiendo.

    Agradeceria una explicación.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

He leído y acepto la política de privacidad

Información básica acerca de la protección de datos

  • Responsable: IZERTIS S.A.
  • Finalidad: Envío información de carácter administrativa, técnica, organizativa y/o comercial sobre los productos y servicios sobre los que se nos consulta.
  • Legitimación: Consentimiento del interesado
  • Destinatarios: Otras empresas del Grupo IZERTIS. Encargados del tratamiento.
  • Derechos: Acceso, rectificación, supresión, cancelación, limitación y portabilidad de los datos.
  • Más información: Puedes ampliar información acerca de la protección de datos en el siguiente enlace:política de privacidad

Consultor tecnológico de desarrollo de proyectos informáticos.  Ingeniero Técnico en Telecomunicaciones. Puedes encontrarme en Autentia by Izertis

¿Quieres publicar en Adictos al trabajo?

Te puede interesar

02/03/2026

José Antonio Sánchez Segovia

Zephyr es un RTOS open source respaldado por la Linux Foundation que permite desarrollar dispositivos embebidos conectados, eficientes y escalables, facilitando el paso de prototipo a producto final con una arquitectura mantenible.

23/02/2026

Enrique Casado Díez

LoRa y LoRaWAN son tecnologías clave en el ecosistema IoT cuando se requiere largo alcance y bajo consumo energético. En este artículo analizamos su funcionamiento, Spreading Factor, link budget, arquitectura de red, frecuencias y clases de dispositivos, con un caso práctico real.

19/02/2026

Juan José Díaz Antuña

Copilot Chat es la forma más sencilla y segura de empezar a usar IA en Microsoft 365. En este artículo vemos cómo funciona, cómo activarlo y en qué se diferencia de Microsoft 365 Copilot, Copilot Studio y los Agentes Inteligentes, con ejemplos prácticos y una comparativa clara.