4 votes

Django Celery en production

J'ai tout ce que je veux faire avec django-celery qui fonctionne sur ma machine de développement en local. J'utilise Django, djcelery , cellery et le courtier (Amazon SQS). Il envoie des tâches et fonctionne tout simplement.

Je peux configurer tout cela comme je l'ai fait localement (c'est-à-dire sur une seule machine). machine), mais que se passe-t-il lorsque je veux distribuer des tâches à une autre machine/partager des tâches, etc. S'agit-il d'une copie de la machine actuelle (avec Django, djcelery y celery ) et toutes les connexions au même SQS ? Comment cela fonctionne-t-il ? S'ils sont tous connectés au même courtier, est-ce qu'ils le savent ? ou est-ce que cela ne fonctionne pas ainsi ?

Est-il possible de commencer avec tout sur une seule machine comme je l'ai fait en développement (je vais démoniser celery en production) ?

4voto

krak3n Points 668

Amazon SQS est un service de mise en file d'attente simple, les travaux sont mis en attente d'être exécutés, puis retirés de la file d'attente une fois terminés. Celery lit simplement à partir de cette file d'attente.

Le céleri peut évoluer à la fois horizontalement et verticalement. Vous avez besoin de celery pour traiter plus de tâches plus rapidement ? Donnez à votre machine plus de ressources, augmentez le nombre de travailleurs, c'est l'échelle verticale, ou démarrez plus de petites machines, c'est l'échelle horizontale. Dans tous les cas, les workers celery utilisent tous la même file d'attente sur SQS. La façon dont le reste de votre infrastructure sera affecté dépend de ce que font vos jobs celery. S'ils écrivent dans une base de données, plus vous avez de travailleurs, plus la charge sur votre base de données est élevée.

Il n'y a pas de problème à commencer par l'approche "tout" sur une seule machine. Au fur et à mesure que la demande de votre application augmente, vous pouvez envisager de déplacer les travailleurs celery sur d'autres machines ou de donner plus de ressources à votre serveur tout en un.

Cela vous aide-t-il ? :)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X