Skip to content

Un Scheduler sencillo hecho en Java (con Spring y Quartz) que consume una API pública.

License

Notifications You must be signed in to change notification settings

DanteZulli/quartz_scheduler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Quartz Task Scheduler 🕒

Un Scheduler sencillo hecho en Java (con Spring y Quartz) que consume una API pública.

Tabla de contenidos 📑

Descripción 📝

Un simple y práctico Scheduler hecho en Java.
El mismo permie programar y administrar tareas de forma automática.
Está hecho con la librería Quartz. Utiliza Java 17 (con el framework Spring)y Maven para el manejo de dependencias.
Se puede utilizar para programar tareas de forma automática, como por ejemplo: enviar mails, generar reportes, etc.
En este caso, consulta una API pública y devuelve el resultado en un log.
Todo el proyecto se encuentra documentado, método a método, ya sea con comentarios en el código o en este mismo README.
En caso de necesitar más información, dejo a su disposición diferentes fuentes de las que pueden guiarse para entender mejor el funcionamiento de Quartz junto con Spring.

Diagramas 📊

Nota: Por si no se ven, estan codeados en Mermaid, pueden ejecutarlos desde la siguiente página.

Metodología de trabajo de procesos en Quartz

flowchart LR
    style A fill:#504945,stroke:#504945,stroke-width:2px,color:#EBDBB2
    style B fill:#504945,stroke:#504945,stroke-width:2px,color:#EBDBB2
    style C fill:#504945,stroke:#504945,stroke-width:2px,color:#EBDBB2
    style D fill:#504945,stroke:#504945,stroke-width:2px,color:#EBDBB2
    style E fill:#504945,stroke:#504945,stroke-width:2px,color:#EBDBB2
    style F fill:#504945,stroke:#504945,stroke-width:2px,color:#EBDBB2
    style G fill:#504945,stroke:#504945,stroke-width:2px,color:#EBDBB2

    A[Scheduler Factory] -- Crea los --> B[Scheduler] -- Programa --> C[Jobs]
    C -- Se realizan/activan por medio de --> D[Trigger]
    C -- Se guardan por medio de --> E[Job Store]
    B -- Registra --> F[Job Listeners]
    B -- Registra --> G[Trigger Listener]

Loading

Clases, métodos y como interactuan entre sí

flowchart TB
    subgraph "QuartzConfig.java"
        style A fill:#504945,stroke:#504945,stroke-width:2px,color:#EBDBB2
        A[QuartzConfig] --> B[SpringBeanJobFactory]
    end

    subgraph "QuartzSchedulerJobs.java"
        style C fill:#3C3836,stroke:#3C3836,stroke-width:2px,color:#EBDBB2
        C[QuartzSchedulerJobs] --> D[jobMemberClassPet]
        C[QuartzSchedulerJobs] --> E[triggerMemberClassPet]
    end

    subgraph "PetJob.java"
        style F fill:#665C54,stroke:#665C54,stroke-width:2px,color:#EBDBB2
        F[PetJob] --> G[PetService]
    end

    subgraph "PetService.java"
        style G fill:#9D0006,stroke:#9D0006,stroke-width:2px,color:#EBDBB2
        G[PetService] --> H[getPets]
    end


Loading

Imágenes 📷

Para darle algo de color al repositorio :D Screenshot-4.png Screenshot-3.png Screenshot-5.png

Requisitos 📋

  • Java (De preferencia, siempre la opción más actalizada)

    Nota: En teoría, debería funcionar con cualquier versión de Java, así como con cualquier JDK, siempre y cuando realicen la build correctamente.
    El código no posee nada particular de una de las nuevas versiones, es más, se basó en tutoriales y guías de hace años. Comencé programandolo en Java 8 y no me generó ningún problema al actualizarlo de versión. De todas formas recomiendo usar la misma que utiliza el proyecto para evitar rompederos de cabeza.

  • OpenJDK (Java Development Kit) versión 17 o superior.

    Versión de OpenJDK utilizada: 17.0.7

    openjdk version "17.0.7" 2023-04-18
    OpenJDK Runtime Environment Temurin-17.0.7+7 (build 17.0.7+7)
    OpenJDK 64-Bit Server VM Temurin-17.0.7+7 (build 17.0.7+7, mixed mode, sharing)
    

Uso 🚀

Dejo por acá una serie de pasos para poder ejecutarlo en su máquina local (más unas consideraciones extra):

  1. Clonar este repositorio
  2. Importar el proyecto en un IDE (Eclipse, IntelliJ, etc)
    PD: Se utilizó VSCode con el profile default de Microsoft "Java Spring", que contiene las extensiones de el "Java Extension Pack" y el "Spring Boot Extension Pack".
  3. Asegurarse de que el JDK se encuentre actualizado.
  4. Hacer una build y ejecutarla.

Ante cualquier inconveniente, no duden en hacermelo saber!

Recursos Adicionales 🔗

Licencia 📄

Este proyecto está licenciado bajo GPL-3.0, lo que significa que podés usarlo, modificarlo y compartirlo según los términos de la licencia. Para más detalles, podés consultar el archivo LICENSE.md.

¡Siéntanse libres de aprovechar el código y hacer sus propias contribuciones! Valoro cualquier aporte y te animamo a explorar el proyecto. Si encontás algún problema o tenés ideas para mejorarlo, no dudes en hacérmelo saber!

About

Un Scheduler sencillo hecho en Java (con Spring y Quartz) que consume una API pública.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages