Ich bin neu in der Arbeit mit Nachrichtenaustausch und traf das Problem, das richtige Handbuch für die Aufgabe zu finden.RabbitMQ + Kombu: Schreiben/Lesen zu einmaligen Gebrauch Warteschlangen mit zufälligen Namen
ich brauche Pool von Warteschlangen zu organisieren, so dass:
Producer einige zufällige leere Warteschlange erstellen und schreiben dort die ganze Packung von Nachrichten (100 Meldungen in der Regel).
Consumer finden nicht leere und nicht gesperrte Warteschlange und lesen von ihm bis es ist leer und dann löschen Sie es und suchen Sie nach dem nächsten.
So ist meine Aufgabe, mit Nachrichten zu arbeiten, wie die Pakete, die ich verstehe, wie in einer Warteschlange mit demselben Schlüssel zu produzieren und konsumieren, aber nicht finden kann, wie mit dem Pool von Warteschlangen zu arbeiten.
Wir können mehrere Produzenten und Konsumenten parallel laufen lassen, aber es gibt keine Frage, welche von denen an wen senden. Wir brauchen und können keine bestimmten Produzenten mit bestimmten Konsumenten verbinden.
Allgemeine Aufgabe: wir haben viele Kunden Push-Benachrichtigungen zu erhalten, schiebt wir Gruppe von einigen Parametern später als Gruppe zu bearbeiten, so dass solche Gruppe sollte in RabbitMQ in einer Warteschlange als produziert und verbraucht werden eine Gruppe, aber jede Gruppe ist unabhängig von anderen Gruppen.
Vielen Dank an Hannu für die Hilfe: Grundidee seiner einfachen und robusten Lösung, dass wir eine persistente Warteschlange mit bekannten Namen haben können, wo der Produzent Namen der erstellten Warteschlangen schreibt und der Verbraucher diese Namen von dort liest.
Zu seiner Lösung besser lesbar und einfache Arbeit mit in Zukunft in meiner persönlichen Aufgabe, ich habe geteilt publish_data() in Produzenten in zwei Funktion zu machen - eine zufällige Warteschlange machen und schreiben Sie es ein anderes erhält diese random_queue control_queue und füllt es mit Nachrichten. Ähnliche Idee ist gut für den Verbraucher - eine Funktion zur Verarbeitung der Warteschlange, ein anderer wird für die Prozessnachricht selbst aufgerufen.
Haben Sie mehrere Erzeuger und Verbraucher haben Anwendungen? Und ist die "andere mögliche Variante" auch akzeptabel? So würde ich es wahrscheinlich machen, oder eine Variante davon. – Hannu
Hannu, ich aktualisierte die Frage mit Antworten auf Ihre Fragen. – DaneSoul
Danke. Ich habe einen Antwortkandidaten gepostet. Es scheint nicht mit seiner "Kombu-ness", aber es funktioniert und wird zumindest eine Idee geben, wie man das löst. – Hannu