2017-12-16 1 views
0

Ich habe eine Frage bezüglich ChildEventListener. Ich arbeite an einer Back-End-API, die auf der JVM ausgeführt wird. Ich plane die Möglichkeit, dass mehrere Instanzen dieses Servers gleichzeitig ausgeführt werden. Wenn ich Unterereignisse von dem Unterdokument "Benutzer" abonnieren würde, würden alle Instanzen des Servers, die den gleichen Code ausführen, das Ereignis erhalten? Wenn ja, gibt es einen Weg, auf dem nur einer das Ereignis konsumieren kann?Werden alle Instanzen von ChildEventListener bei mehreren Serverinstanzen ausgelöst?

Danke für Ihre Hilfe!

Antwort

1

Firebase-Datenbank-Broadcasts werden an alle hörenden Clients gesendet. Ein Client kann nicht verhindern, dass eine bestimmte Änderung an die anderen Clients gesendet wird.

Es klingt jedoch so, als ob Sie versuchen, eine Producer/Consumer-Warteschlange mit mehreren Consumern/Workern zu erstellen. Es gibt eine Bibliothek, die diese Art von Szenario namens `firebase-queue' unterstützt. Es verwendet Firebase Database-Transaktionen, um sicherzustellen, dass nur ein Client Anspruch auf die Arbeit hat.

Es ist eine Art der gegenteilige Ansatz von dem, was Sie versuchen: Wenn mehrere Arbeiter schreiben, um eine Aufgabe zu beanspruchen, erlaubt es nur eine dieser Schreibvorgänge auftreten. Soweit ich sehen kann, würde dies Ihre Anforderung erfüllen.

+0

Klingt genau wie, was ich brauche, danke! – BajaBob

Verwandte Themen