2016-06-28 12 views
0

Ich entwickle eine Anwendung auf GAE/J und schaue, wie man verteilte Sperre darauf anwendet.Verteilte Sperre auf GAE/J

Meine Anforderung ist ziemlich gleich mit this question. Aber diese Frage ist etwa 7 Jahre alt, so dass ich nicht finden kann, ob die Antworten noch gültig sind. Auch ich kann diese Antworten nicht finden, arbeitet auf GAE/J.

Wie kann ich verteilte Sperre auf GAE/J implementieren?

Antwort

0

Sie können eine Transaktion über den Datenspeicher durchführen, mit der Sie eine verteilte Sperre implementieren können. https://cloud.google.com/appengine/docs/java/datastore/transactions

+0

Danke für die Antwort. Eine meiner Anforderungen ist "wenn der Schlosshalter stirbt, wird er automatisch nach X Sekunden freigegeben". Erfüllt der Datenspeicher diese Anforderung? –

+0

Sie können einen Wert in den Datenspeicher eingeben, um die Sperre mithilfe der Transaktion zu erhalten, nachdem Sie die Sperre festgelegt haben. Sie müssen schließlich oder sonst wie sicherstellen, dass die Sperre aufgehoben wird. Sie können einen Prozess haben, der die Sperre prüft und die Bewertungszeit freigibt (der Wert kann ein Zeitstempel sein). Aber nichts funktioniert out of the box. –

+1

Wenn Prozess stirbt, wird schließlich nicht ausgeführt. Die Zeitstempelmethode kann nicht verwendet werden, da wir nicht garantieren können, wie lange unsere Transaktion dauert. –