Skip to content

Saamuuell/docker-rabitmq

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DOCKER - RABBITMQ

Pour lancer le projet besoin de npm et node et docker

Prérequis : node, npm, docker, docker-compose

Prérequis Créer la queue Rabbitmq

Se rendre sur rabbitmq et creer une queue nommée 'command'

Il est possible de spécifier dans le .env le port de l'api commande et le npm de la queue rabbitmq

Installer les dependances

npm i

Le npm i installe les dependances dont sqlite3, il n'y a pas besoin d'installer quoi que ce soit d'autre

Il faut ensuite lancer la commande docker-compose up ou docker compose up pour lancer rabitmq

Lancer le projet

On lance ensuite le projet avec npm run start npm run start

TEST

Lancer avec curl ou wget ou postman une requete post curl -H 'Content-Type: application/json' -d '{}' "http://localhost:${port}/commande/create" préciser le port

Cela va creer une commande qui va etre traiter par rabitmq

Il est possible de voir l'avancement du triatement dans la console

5 secondes apres la commande est traitée

Les different fichiers

  • rabitmq.js : Traite les differentes demandes rabbitmq, gere la connexion, le consumer et le fait de send le message
  • worker.js : Fonction envoyé ensuite a la lib rabitmq pour traiter le message et faire les traitements
  • db.js : Gère la connexion a la bd
  • api.js : Gère la création de l'api et des routes
  • index.js : Lie tout les fichiers entre eux grace a l'injection de dépendances

L'API ne renvoie que des codes d'erreurs 400 Bad Request car toute les routes sont en get et pour la route create on ne passe aucun body car inutile (id: auto-increment, uuid: généré, flag: statique)

Fonctionnement

  • On lance une requete create en post avec un body vide ou pas
  • La commande est créé et ajouté a la bd avec le flag 'Commande en attente de traitement'
  • L'api se charge grace a la lib rabitmq d'envoyer un message qui contient le num de commande et un message 'Creer le plat'
  • Le worker qui ecoute la queue spécifier dans le .env recoit le message, apres 5 secondes il met a jour la commande en mettant son flag a 'Commande Traitée'
  • il est possible de vérifier la commande et son flag grace a son numero de commande ou son id

Routes pour visualiser ses commandes en get

http://localhost:3000/commandes http://localhost:3000/commande/id/:id http://localhost:3000/commande/numero/:numero

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published