Skip to content

Commit

Permalink
Feature/define intervals for data import (#105)
Browse files Browse the repository at this point in the history
  • Loading branch information
saschadoemer authored Nov 24, 2023
1 parent 33360bf commit eb362d5
Show file tree
Hide file tree
Showing 5 changed files with 91 additions and 3 deletions.
72 changes: 72 additions & 0 deletions .github/workflows/publish-dev-docker-image.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
name: Publish DEV Docker Image

on:
push:
branches:
- main

env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}

jobs:
create-docker-image:
name: Create Docker Image
runs-on: ubuntu-latest

permissions:
contents: read
packages: write

steps:
- name: Checkout
uses: actions/checkout@v3

- name: Set up Java 17
uses: actions/setup-java@v3
with:
java-version: 17
distribution: microsoft

- name: Build with Maven
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
FARM21_API_TOKEN: ${{ secrets.FARM21_API_TOKEN }}
SOILSCOUT_USERNAME: ${{ secrets.SOILSCOUT_USERNAME }}
SOILSCOUT_PASSWORD: ${{ secrets.SOILSCOUT_PASSWORD }}
AGRANIMO_USERNAME: ${{ secrets.AGRANIMO_USERNAME }}
AGRANIMO_PASSWORD: ${{ secrets.AGRANIMO_PASSWORD }}
SENTEK_API_TOKEN: ${{ secrets.SENTEK_API_TOKEN }}
AGVOLUTION_USERNAME: ${{ secrets.AGVOLUTION_USERNAME }}
AGVOLUTION_PASSWORD: ${{ secrets.AGVOLUTION_PASSWORD }}
SENSOTERRA_USERNAME: ${{ secrets.SENSOTERRA_USERNAME }}
SENSOTERRA_PASSWORD: ${{ secrets.SENSOTERRA_PASSWORD }}
API_KEY: ${{ secrets.API_KEY }}
WEENAT_USERNAME: ${{ secrets.WEENAT_USERNAME }}
WEENAT_PASSWORD: ${{ secrets.WEENAT_PASSWORD }}
MICROSTREAM_STORAGE_DIRECTORY: ./microstream-integration-test
IMAGE_PATH_BASE_URL: localhost:8080/images
run: mvn -B verify --file pom.xml --settings .github/settings.xml

- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v4
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: develop, latest

- name: Build Docker Image
uses: docker/build-push-action@v3
with:
context: .
push: ${{ github.ref_type == 'tag' }}
file: .github/dockerfile
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ public DataImportScheduler(ApplicationEventPublisher applicationEventPublisher,
/**
* Schedule data import for all manufacturer.
*/
@Scheduled(cron = "${app.scheduled.cron}")
@Scheduled(initialDelayString = "${app.scheduled.data-import.initial-delay}", fixedDelayString = "${app.scheduled.data-import.delay}")
public void scheduleDataImport() {
Arrays.stream(Manufacturer.values())
.forEach(manufacturer -> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -309,6 +309,16 @@
"name": "app.fiware.tenant",
"type": "java.lang.String",
"description": "The FIWARE tenant."
},
{
"name": "app.scheduled.data-import.initial-delay",
"type": "java.lang.String",
"description": "The initial delay for the scheduled data import."
},
{
"name": "app.scheduled.data-import.delay",
"type": "java.lang.String",
"description": "The delay for the scheduled data import."
}
]
}
5 changes: 4 additions & 1 deletion src/main/resources/application.yml
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,10 @@ app:
username: ${WEENAT_USERNAME}
password: ${WEENAT_PASSWORD}
scheduled:
cron: "0 0 */1 * * *" # every hour
data-import:
# Spring Boot uses ISO-8601 durations, https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/time/Duration.html#parse(java.lang.CharSequence)
initial-delay: PT10S # 10 seconds
delay: PT30M # 30 minutes
daysInThePastForInitialImport: 3
fiware:
contextBrokerUrl: ${CONTEXT_BROKER_URL}
Expand Down
5 changes: 4 additions & 1 deletion src/test/resources/application.yml
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,10 @@ app:
username: ${WEENAT_USERNAME}
password: ${WEENAT_PASSWORD}
scheduled:
cron: "0 0 */1 * * *" # every hour
data-import:
# Spring Boot uses ISO-8601 durations, https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/time/Duration.html#parse(java.lang.CharSequence)
initial-delay: PT10S # 10 seconds
delay: PT30M # 30 minutes
daysInThePastForInitialImport: 1
fiware:
contextBrokerUrl: https://orion.5gla.de
Expand Down

0 comments on commit eb362d5

Please sign in to comment.