Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Attendre que la base soit démarrée et accessible avant de lancer le middleware #31

Open
fluidlog opened this issue Jan 20, 2022 · 4 comments
Assignees
Labels
low difficulty Easy issue (difficulty) medium priority
Milestone

Comments

@fluidlog
Copy link
Contributor

Lors qu'on lance à la main la base Jena/Fuseki, puis ensuite le middleware, il est possible d'attendre que la base soit chargée avant de lancer le middleware.

Mais en docker, c'est plus compliqué, malgré les dépendances dans le docker-compose, qui ne vérifient pas jusqu'à ce point.

Il est donc possible d'avoir l'erreur :
"...connect ECONNREFUSED 172.20.0.4:3030..."
image

Malgré cette erreur, le middleware se lance, et arrive un peu plus tard à écrire dans la base.
Mais on peut se demander s'il n'y a pas eu un loupé...

Donc le mieux serait, pour les déploiements en docker, de pouvoir vérifier au lancement du middleware que la base est bien démarrée.

@fluidlog
Copy link
Contributor Author

Simon a partagé des idées de solutions, en docker :
https://github.com/vishnubob/wait-for-it
il est aussi possible (c'est ce que je fais dans dfc) d'attendre en node
https://www.npmjs.com/package/wait-on

@srosset81
Copy link
Contributor

On pourrait utiliser le package wait-on au démarrage (started) des services triplestore et fuseki-admin. Comme ça ils ne seraient lancés que lorsque Fuseki est operationnel, et toutes les dépendences attendraient. A ma connaissance c'est les deux seuls services qui appelent directement Fuseki.

@srosset81
Copy link
Contributor

@fluidlog Si c'est fait au niveau middleware (ce qui me semble le plus pérenne et efficace), cette issue devrait être transférée dans le repo semapps.

@fluidlog fluidlog added this to the v0.1 milestone Jan 25, 2022
@srosset81
Copy link
Contributor

La solution utilisée par DataPlayers (@BastienSig) est un healthcheck:

https://github.com/datafoodconsortium/dfc-prototype-V3/blob/master/docker-compose-dev.yml

Facile à mettre en oeuvre.

@srosset81 srosset81 added low difficulty Easy issue (difficulty) and removed medium difficulty labels Oct 10, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
low difficulty Easy issue (difficulty) medium priority
Projects
None yet
Development

No branches or pull requests

2 participants