So habe ich einen Dienst, der jedes Mal, wenn Benutzer einen REST API-Aufruf durchführt, einige lange Berechnungen vornehmen muss. Im Moment schiebt ein HTTP-Handler einige Daten in eine Tabelle in RethinkDB und ein Hintergrundjob verwendet changefeed, um die Daten zu holen und Berechnungen durchzuführen.Teilen changefeed Abfrageergebnisse zwischen vielen Sitzungen
Daten: { id: RethinkDB's UUID, payload: ... }
Jetzt möchte ich:
- Machen Sie den Prozess im Hintergrund laufen parallel auf mehreren Rechnern
- Verwenden Phantasie ReQL verschiedene Aufgaben zu verschiedenen Maschinen versenden
- Vermeiden Sie doppelte Berechnungen
Eine Idee, die ich habe ist:
- jeden Prozess Geben Sie eine separate PROCESS_ID (1,2,3 ..)
- Karte ID Data zu einer Reihe (num_id)
- Verwendung Changefeed in jedem Prozess und wartet auf Daten, bei denen num_id% max_process_id process_id wird
Hat jemand eine bessere Idee?
Gibt es eine kanonische Möglichkeit, die changefeed-Abfrage automatisch an mehrere Maschinen zu senden?