Bonjour à tous,
j'ai une application web qui tourne sous nodejs et qui enregistre des commandes de produits et donc des lignes de commandes.

ces commandes ont un ID unique qui est calculé par rapport à la valeur d'une autre table. (pas de possibilité de créer des ID automatiques SQL ni de trigger)
l'enregistrement se fait donc après avoir lu et mis à jour cette table (le champ compteur d'ID reçoit un (+1))

les fonctions de récupération de l'ID et update de la table puis enregistrement de la ligne sont bien encapsulées dans des call back.

problème: à intervalle régulier, (30min), j'ai un cronjob qui sollicite ma bdd.
parfois l'activité de ce cronjob (qui n'a rien à voir avec les tables de ligne de commande) fait qu'il se crée des doublons d'ID dans ma table de ligne de commandes car le cronjob "bloque" l'accès à la bdd. (il y a une grosse requête dedans).
Comment être certain que mon compteur d'ID soit mis à jour de manière impérative avant l'enregistrement de toute nouvelle ligne de commande ? (par un autre client ou parce que l'utilisateur a eu le temps de cliquer sur un autre produit).
j'ai l'idée d'utiliser la fonction settimeout pour les éléments qui sont appelés dans le cron job (afin qu'ils soient exécutés lorsque le stack est vide).
est-ce que ça sera suffisant ?
D'avance merci de votre aide !