[TECH] Prévenir les incompréhensions due aux expirations de jobs. #12012
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🌸 Problème
Pg-boss utilise Promise.race(), pour définir si un job a son délai de traitement qui a expiré.
Le problème est que
Promise.race
n'arrête pas les promesses en cours, il retourne juste la première promesse qui est terminée. Dans notre cas, lorsqu'un job expire, il est alors marqué comme expiré par pg-boss qui va le retenter plus tard, alors que le job continue en tâche de fond.Des ressources pour comprendre le souhait et l'usage de
expirein
par pg-boss :timgit/pg-boss#238
timgit/pg-boss#102
🌳 Proposition
Utiliser une valeur complétement arbitraire et exagéré pour ne pas se soucier de la config
expireIn
qui peut causer plus de mal que de bien.Nous proposons de la mettre à 48h, car nous souhaitons déployer du code à un intervalle plus court que 24h, ce qui fait que la durée de vie d'un conteneur ne peut pas excéder le temps entre deux déploiements.
🐝 Remarques
🤧 Pour tester
Faire une action qui ajoute un job
Constater en base que le job a un
expirein
à48:00:00