Stompserver est une bonne option. Il est léger, facile à installer et facile à utiliser à partir de Django/python.
Nous avons un système utilisant stompserver en production pour l'envoi d'e-mails et le traitement d'autres tâches de manière asynchrone.
Django enregistre les e-mails dans la base de données, un gestionnaire model.post_save dans Django envoie un événement à stompserver et stompserver transmet l'événement à un processus consommateur qui effectue la tâche de manière asynchrone (envoie l'e-mail).
Il s'adapte assez bien car vous pouvez ajouter des processus consommateurs en cours d'exécution - deux consommateurs peuvent envoyer le double d'e-mails, et les consommateurs peuvent être sur des machines distinctes. Une légère complication est que chaque consommateur a besoin de sa propre file d'attente nominée, donc Django doit savoir combien de consommateurs sont disponibles et envoyer les événements à chaque file d'attente de manière circulaire. (Deux consommateurs écoutant sur la même file d'attente recevront tous les deux chaque message = duplication). Si vous ne voulez qu'un seul processus consommateur, ce n'est pas un problème.
Nous avions auparavant des processus qui interrogeaient en continu la base de données pour des tâches mais nous avons constaté que cela ajoutait beaucoup de charge au système, même lorsqu'il n'y avait rien à traiter.