spring boot quartz scheduler
1.0.0
Application Spring Boot + Quartz + vueJs (Vuetify).
La solution permet de gérer et de planifier des tâches qui effectuent des appels HTTP au point de terminaison fourni. L'avantage du planificateur est que nous pouvons le déployer en clusters. (Inspiré du paramètre de mode cluster quartz)
Variable d'environnement :
export DB_NAME='<your_db_name>'
export DB_HOST='<your_db_host>'
export DB_PORT='<your_db_port>'
export DB_USERNAME='<your_db_user>'
export DB_PASSWORD='<your_db_password>'
Création de schéma Quartz :
./gradlew flywayMigrate
#Note : this is alreday initialise by spring hibernate.ddl-auto: update property
Pour créer le gros JAR et exécuter des tests :
./gradlew build test
Couverture du test Jacoco :
./gradlew jacocoTestReport
Courir:
java -jar build/libs/spring-boot-quartz-scheduler-1.0-SNAPSHOT.jar
OR
./gradlew bootRun
Docker:
## build
docker build -t needubey/quartz_scheduler
# RUN
docker run --name quartz_scheduler
-p 1234:1234
--env DB_NAME="quartz_scheduler"
--env DB_HOST="postgres"
--env DB_PORT="5432"
--env DB_USER_NAME="postgres"
--env DB_PASSWORD="postgres"
--detach
needubey/quartz_scheduler
Docker-Compose :
version: '3'
services:
postgres:
container_name: postgres
image: postgres
environment:
POSTGRES_DB: ${DB_NAME:-quartz_scheduler}
POSTGRES_USER: ${DB_USERNAME:-postgres}
POSTGRES_PASSWORD: ${DB_PASSWORD:-postgres}
PGDATA: /data/postgres
volumes:
- postgres:/data/postgres
ports:
- "5432:5432"
networks:
- postgres
restart: unless-stopped
quartzscheduler:
depends_on:
- "postgres"
container_name: quartz_scheduler
build: .
image: needubey/quartz_scheduler
environment:
DB_NAME: ${DB_NAME:-quartz_scheduler}
DB_HOST: ${DB_HOST:-postgres}
DB_PORT: 5432
DB_USERNAME: ${DB_USERNAME:-postgres}
DB_PASSWORD: ${DB_PASSWORD:-postgres}
ports:
- "${SCHEDULER_PORT:-1234}:1234"
networks:
- postgres
restart: unless-stopped
networks:
postgres:
driver: bridge
volumes:
postgres:
application -> http://localhost:1234/
swagger -> http://localhost:1234/swagger-ui.html