Tout dépend de ce que vous voulez l'utiliser pour.
RabbitMQ est la solution recommandée, il est largement déployé, testé et prend en charge toutes les fonctionnalités.
Avec une configuration optimisée, vous pouvez traiter jusqu'à 15000 persistante des tâches/s avec un seul processus. RabbitMQ est également livré avec la gestion et le suivi des solutions (divulgation complète: je travaille avec le RabbitMQ équipe de VMware, et je suis le Céleri chef de projet).
Redis est également une option populaire, il prend en charge presque toutes les fonctionnalités, mais il n'est pas très durable dans sa configuration par défaut, si le Redis serveur est terminée brusquement, vous pouvez, au pire, de perdre des minutes de données (http://redis.io/topics/persistence). Même avec append-only mode il y a un risque de perte de données si le celeryd instance est brutalement tué: c'est parce que le Redis ne supporte pas de message de remerciements. Nous travaillons sur un correctif à imiter, mais qui auront un impact sur les performances de beaucoup (dans le temps moyen que vous devez définir CELERYD_PREFETCH_MULTIPLIER=1 afin de minimiser l'impact d'un tel scénario de perte de données).
Les pilotes de base de données ont été faites à l'origine pour des fins de test uniquement, mais ils sont utilisés dans la production de néanmoins. Les pilotes de base de données ne prend pas en charge les événements et de diffusion, de sorte que le Céleri surveiller et de commandes de contrôle à distance (celeryctl) ne fonctionnera pas.
Il peut fonctionner assez bien pour les petits déploiements, mais si jamais vous avez besoin d'ajouter plus de celeryd cas, vous devez en choisir une autre option. Malheureusement, les bases de données ne sont généralement pas adapté pour ce genre de travail (même si postgres 9 est livré avec de nouvelles fonctionnalités qui le rend "plus adapté", que l'on peut éventuellement prendre en charge).
MongoDB je n'ai pas eu beaucoup d'expérience avec moi, mais je sais que le Céleri backend est utilisé et est activement maintenu (il vient de récemment pris en charge la surveillance et le contrôle à distance de soutien). Je l'imaginer, cependant, qu'il a les mêmes problèmes de la longévité comme mentionné ci-dessus avec le Redis.
En outre, il ya un soutien pour l'utilisation d'Amazon SQS, Beanstalk, CouchDB. Ces backends
ne prennent pas en charge le suivi et commandes de contrôle à distance.
En bref; Si ne pas perdre de tâches est essentiel, vous devriez être à l'aide de RabbitMQ.
La principale base de données est OK avec le bas de la tâche de volumes et d'un ou peut-être deux celeryd instances.