Traitement de tâches de fond en Ruby

Spécialité(s)


Résumé

Beaucoup de projets web utilisent des frameworks qui font grand usage de Redis pour gérer les tâches de fond. Pourtant RabbitMQ ou Kafka sont des options qui peuvent donner un regard tout à fait différent sur l’application en elle-même. Tour d’horizon des trois approches.


Lorsque Ruby on Rails a commencé à être utilisé, il a vite fallu avoir des moyens de traiter des choses en dehors du serveur HTTP, de façon asynchrone. La plupart des sites internet applicatifs ou des backends qui servent des applications mobiles ont ce genre de besoins : envoi de courriels, génération de fichiers d'archives ou PDF, etc.

Plusieurs librairies et projets ont vu le jour à ce moment et sont devenus populaires (Delayed::Job, Resque, Sidekiq pour en nommer quelques-uns). Ces projets sont souvent issus de besoins rencontrés par les startups de cette époque (Delayed::Job est issu de Shopify). Ils ont quasiment tous en commun d'utiliser Redis (le cheval de trait de cette génération d'applications Ruby on Rails) pour stocker les listes des tâches à traiter.

Mais est-ce là la seule façon de faire ? Point du tout. Quelques années auparavant, la plupart des projets utilisaient RabbitMQ (un agent de messages, implémentant le protocole AMQP), et c'est...

Cet article est réservé aux abonnés. Il vous reste 96% à découvrir.
S'abonner à Connect
  • Accédez à tous les contenus de Connect en illimité
  • Découvrez des listes de lecture et des contenus Premium
  • Consultez les nouveaux articles en avant-première
Je m'abonne


Article rédigé par

Abonnez-vous maintenant

et profitez de tous les contenus en illimité

Je découvre les offres

Déjà abonné ? Connectez-vous