Verwenden mehrerer Installationen von Sellerie mit einem Redis Backend

8

Ist es möglich, dieselbe Redis-Datenbank für mehrere Projekte mit Sellerie zu verwenden? Zum Beispiel die Verwendung derselben Datenbank für mehrere Projekte als Cache unter Verwendung eines Schlüsselpräfixes. Oder muss ich für jede Installation eine eigene Datenbank verwenden?

    
frog32 21.08.2012, 09:39
quelle

2 Antworten

1

Ich habe ein Redis-Backend für Sellerie verwendet, während ich auch die selbe redis-db mit vorfixierten Cache-Daten verwende. Ich habe dies während der Entwicklung gemacht, ich habe nur redis für das Ergebnis-Backend verwendet, um keine Aufgaben zu warten, und die Produktionsbereitstellung endete als AMQP (nur für das Zwischenspeichern). Ich hatte keine Probleme und verstehe nicht, warum man das tun würde (außer bei Performance-Problemen).

Wenn Sie mehrere Sellerie-Projekte mit unterschiedlichen Aufgabendefinitionen ausführen, wäre das Problem vermutlich, wenn Sie zwei verschiedene Arten von Arbeitern haben, von denen jeder nur eine Teilmenge von Auftragstypen verarbeiten kann. Ohne separate Datenbanken bin ich mir nicht sicher, wie die Arbeiter in der Lage wären zu sagen, welche Jobs sie bearbeiten könnten.

Ich würde wahrscheinlich entweder sicherstellen wollen, dass alle Worker alle Aufgabentypen definiert haben und alles verarbeiten können, oder die separaten Projekte in separaten Datenbanken behalten wollen. Dies würde keine zusätzliche Installation erfordern, Sie würden einfach ein REDIS_DB = 1 in einem Ihrer Sellerie-Projekte angeben. Es könnte einen anderen Weg geben, dies zu tun. Ich weiß nicht sicher, dass mehrere DBs benötigt werden, aber es macht Sinn.

Wenn du redis nur für ein Ergebnis-Backend verwendest, könnte das vielleicht funktionieren, wenn du mehrere Sellerie-Projekte auf einer redisis db hast ... ich bin mir nicht wirklich sicher.

    
Brian 23.08.2012, 10:50
quelle
9

Um von diesem hilfreichen Blogpost zusammenzufassen: Ссылка

  • Geben Sie für jedes Projekt eine andere Datenbanknummer an, z. redis: // localhost / 0 und redis: // localhost / 1
  • Definieren und verwenden Sie verschiedene Warteschlangennamen für die verschiedenen Projekte. Definieren Sie auf der Taskseite CELERY_DEFAULT_QUEUE. Wenn Sie Ihren Worker starten, verwenden Sie den Parameter -Q, um diese Warteschlange anzugeben. Lesen Sie hier mehr über das Routing: Ссылка
Charl Botha 08.04.2013 08:12
quelle

Tags und Links