J'écris un logiciel qui va gérer quelques centaines small systems dans "le champ" sur une connexion intermittente 3G (ou similaire).Est-ce que le céleri convient à de nombreux petits systèmes distribués?
La base d'accueil devra envoyer des tâches aux systèmes sur le terrain (par exemple, «signaler votre état», «mettre à jour votre logiciel», etc.), et les systèmes sur le terrain devront renvoyer les tâches au système. serveur (par exemple, "une défaillance a été détectée", "voici quelques données", etc.).
J'ai passé un certain temps à Celery et il semble être un ajustement parfait: celeryd
en cours d'exécution à la base de la maison pourrait recueillir des emplois pour les systèmes dans le domaine, un celeryd
en cours d'exécution sur les systèmes de terrain pourrait recueillir des emplois pour les le serveur, et ces emplois pourraient être échangés lorsque les clients deviennent disponibles.
Alors, le céleri convient-il bien à ce problème? Plus précisément:
- La majorité des tâches seront dirigées vers un travailleur individuel (par exemple, "envoyez le travail 'get_status' à 'system51'") - cela posera-t-il un problème? Est-ce qu'il gère avec élégance les conditions de réseau défavorables (comme, par exemple, les connexions meurent)?
- Quelle fonctionnalité n'est disponible que si RabbitMQ est utilisé comme backend? (Je préfère ne pas utiliser RabbitMQ sur les systèmes de terrain)
- Y a-t-il une autre raison pour laquelle Celery pourrait rendre ma vie difficile si je l'utilise comme je l'ai décrit?
Merci!
(il serait valable de suggérer que Céleri est exagéré, mais il y a d'autres raisons pour lesquelles il me faciliter la vie, donc je voudrais considérer)
* Pourquoi pensez-vous que [RabbitMQ n'est pas] un bon choix? * Parce que mon Erlang + RabbitMQ foo est faible, et ce serait encore une chose que je devrais construire + configurer + maintenir sur les systèmes de terrain, mais ils aura déjà Python + SQLite sur eux. –
* Mais cela sera pris en charge dans Kombu (http://github.com/ask/kombu)* cool - Je vais vérifier Kombu. * Dans ce cas, je pense que vous utilisez le mot overkill à la légère ... * true - J'ai surtout ajouté que parce que l'une de mes plus grandes bêtes noires sur StackOverflow est la réponse "vous le faites mal, vous devriez le faire autrement". Génial, merci beaucoup pour votre aide. –
Je vous le promets, RabbitMQ est vraiment facile à installer et à entretenir. C'est quelque chose que j'installe et que j'oublie ensuite. – asksol