2017-06-15 4 views
0

Angenommen, ich habe 5 Aufgaben zu bearbeiten. Wenn keine Anmeldung erfolgt, ist die erste Aufgabe für die Anmeldung verantwortlich. Wenn die Anmeldung bereits erfolgt ist, sollte die spätere Aufgabe die Anmeldung erneut verwenden.Sicherstellen, dass die Anmeldung nur einmal in Vertex erfolgt

Ich habe 3 verticles:

  • V1 ist die obige Logik zum Durchführen.
  • V2 ist mit Datenbank zur Überprüfung, ob Anmeldung noch nicht fertig ist
  • V3 ist verantwortlich für die Anmeldung über Web-Service-

zu tun, da die 3 verticles asynchron sind, während T1 von V2 überprüft wird, T2 bekommt verarbeitet von V1 (seit V1 ist jetzt frei). Am Ende bekomme ich sowohl T1 als auch T2, um mich beim Webservice anzumelden.

Gibt es trotzdem, um sicherzustellen, während T1 von V2 und V3 verarbeitet wird, wartet T2?

+0

Es ist mir nicht klar, warum Sie drei verticles benötigen, um dies zu tun. Vielleicht würde das Teilen von Code helfen, Ihr Problem zu verstehen. – tsegismont

Antwort

0

Am Ende verwenden wir Redis mit Transaktion. Wenn ein Schwarm von Threads gleichzeitig hereinkommt, stellt die Transaktion sicher, dass nur einer das Update durchführen darf. Der Gewinner darf einen Web Service Call durchführen.

Verwandte Themen