Présentation de Solid Queue 1.6.0
Solid Queue, un système de files d'attente pour Ruby on Rails, vient de sortir sa version 1.6.0. Cette nouvelle version apporte une fonctionnalité très attendue : le support des workers fibers. Grâce à cette fonctionnalité, il est désormais possible d'exécuter des tâches en parallèle sur un seul thread, en utilisant les fibers.
Fonctionnement des workers fibers
Pour utiliser les workers fibers, il suffit de spécifier le nombre de fibers à utiliser dans la configuration des workers, au lieu du nombre de threads. Par exemple :
workers:
- queues: "api*"
fibers: 100
polling_interval: 0.05
Cette approche utilise la bibliothèque Async sous-jacente, il est donc nécessaire de l'avoir comme dépendance pour que cela fonctionne. De plus, il est nécessaire d'utiliser l'isolation des fibers dans Rails (config.active_support.isolation_level = :fiber).
Avantages et limites
L'utilisation des workers fibers peut être très utile pour les charges de travail liées aux entrées-sorties (I/O-bound), telles que celles impliquant des appels à des modèles de langage (LLM). Cela permet de gérer plus efficacement les ressources système et d'améliorer les performances globales. Cependant, il est important de noter que cette fonctionnalité nécessite une configuration spécifique et peut présenter des limites en termes de compatibilité avec certaines applications.
Changements et contributions
La version 1.6.0 de Solid Queue apporte plusieurs changements, notamment l'ajout du mode d'exécution des workers fibers, la résolution d'un problème de fuite de transactions dans les tests et la documentation de la mise à jour des tâches récurrentes dynamiques. De nouveaux contributeurs ont également rejoint le projet, apportant leur expertise et leur savoir-faire.