Documentation développeur Jobs Flux cinema
November 26, 2025 at 2:48 AMFlux cinema
Entité : Cinema
Les informations d’un complexe proviennent de plusieurs sources :
- DB2 : Création et mise à jour
- Cineges API central : création et mise à jour
- Cineges API complexe : mise à jour
Topics
cineges.cinema.save
Enregistre les informations d’un complexe dans ES, puis les propage dans cineges.cinema.data.
Le topic est recopié d’un complexe vers le central.
Les données qui transitent sont des entités Cinema.
cineges.cinema.data
Copie des entités Cinema depuis ES.
Le topic est copié du central vers les complexes.
Fonctionnement
L’objet Cinema peut être modifié depuis plusieurs endroits :
- Les jobs d’import AS400
- Les API central
- Les API complexe
Central
Les données sont poussées par les API (ou les jobs d’import AS400) dans le topic cineges.cinema.save.
Les données remontent aussi depuis les complexes via la passerelle Kafka2Kafka.
Le job Cinema partie central récupère les cinémas à enregistrer, s’assure que certaines données ne soient pas remplacées par null (configuration, pricing), les enregistre dans le ElasticSearch central et transmet dans le topic cineges.cinema.data. Il génère aussi une notification.
Complexe
Les données à enregistrer proviennent du central par le topic cineges.cinema.data. Elles peuvent aussi être modifiées localement, les api écrivent dans le topic cineges.cinema.save. Donc le job Cinema côté complexe écoute sur les deux topics.
Pour chaque objet Cinema à traiter, si il correspond au complexe configuré, on regarde la partie Price, pour créer les produits associés dans Odoo. Si les identifiants produits sont ajoutés/modifiés, on ajoute un flag “ShouldSave” pour indiquer au job de réécrire la donnée dans le topic cineges.cinema.save, pour que les données enregistrées remontent au central.
ATTENTION
- Le fait de remettre le cinéma dans le topic
cineges.cinema.savesur le central crée une boucle. Lors du deuxième passage du cinema dans le job, les données Odoo existant déjà, le flag “ShouldSave” n’est pas positionné, et l’objet Cinema n’est pas réémis. - L’objet Cinema écrit dans
cineges.cinema.savesur le complexe va remonter au central, pour ensuite redescendre sur les complexes, viacineges.cinema.data, et sera à nouveau traité dans la boucle. Donc dans le pire des cas, une modification sur un objet Cinema faite au niveau d’un complexe peut passer 3 fois dans le job : une première fois pour la création, une deuxième fois en sortie du job (réécriure danscineges.cinema.save), une troisième fois en provenance du central. - En utilisation “normale” (par exemple, modification d’un paramètrage du complexe), l’objet n’est traité que 2 fois : l’enregistrement local, puis l’enregistrement provenant du central.