etalab / transport-site

Rendre disponible, valoriser et améliorer les données transports
https://transport.data.gouv.fr
194 stars 30 forks source link

Notes sur le fonctionnement d'Oban en lien avec le déploiement #2147

Closed thbar closed 11 months ago

thbar commented 2 years ago

J'ai posé la question suivante sur le Slack Elixir:

Hi! I wonder what are the Oban (& even Phoenix as an aside) best practices to handle shutdown in a blue-green deployment environment, where 2 instances can co-exist at a time. I have seen shutdown and shutdown_grace_period ; are there specific tweaks to put in place to handle SIGTERM then SIGKILL like sidekiq does, etc? Any feedback is most welcome :slightly_smiling_face:

La réponse de l'auteur est:

The SIGTERM signal will start graceful shutdown and all queues pause. Executing jobs can run for shutdown_grace_period, then they get hard killed. You’ll need to coordinate when the blue/green cycle sends SIGKILL and tweak the grace period to match.

Il faudra vérifier le fonctionnement de CleverCloud par rapport à ça, c'est une info intéressante pour améliorer la gestion des jobs au déploiement.

AntoineAugusti commented 11 months ago

Ça fait un bon moment que cette issue est ouverte et il ne me semble pas qu'on ait eu de problèmes particuliers avec Oban étant donné qu'on est bien au fait du fonctionnement et qu'on écrit nos jobs en prenant ceci en compte.

On ferme ?

thbar commented 11 months ago

À ce stade oui on ferme, on n'a pas encore en tout cas le niveau de finesse pour gérer ça correctement si ça posait problème (drains etc).

Merci !